Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在Exasol中创建一个架构到另一个架构的副本_Database_Exasolution - Fatal编程技术网

Database 在Exasol中创建一个架构到另一个架构的副本

Database 在Exasol中创建一个架构到另一个架构的副本,database,exasolution,Database,Exasolution,有人能帮我在EXASOL中创建副本吗?也就是说,我需要将所有表(包括视图、函数和脚本)从一个模式复制到同一服务器中的另一个模式。 例如:我希望复制模式A中的所有数据,而不是将其移动到模式B中。 非常感谢。好的,这个问题由两个小问题组成 1如何复制架构中所有对象的DDL 如果只需要复制少量模式,最快的方法是使用ExaPlus客户端。右键单击schema name并选择createddl。它将为您提供创建所有对象的SQL。您只需在新模式的上下文中运行此SQL即可 如果您必须将其自动化,您可以查看以下

有人能帮我在EXASOL中创建副本吗?也就是说,我需要将所有表(包括视图、函数和脚本)从一个模式复制到同一服务器中的另一个模式。 例如:我希望复制模式A中的所有数据,而不是将其移动到模式B中。
非常感谢。

好的,这个问题由两个小问题组成

1如何复制架构中所有对象的DDL

如果只需要复制少量模式,最快的方法是使用ExaPlus客户端。右键单击schema name并选择createddl。它将为您提供创建所有对象的SQL。您只需在新模式的上下文中运行此SQL即可

如果您必须将其自动化,您可以查看以下官方脚本:

它为所有模式创建DDL,但可以调整为仅使用单个模式

2如何复制数据

这比较容易。只需运行以下SQL来生成INSERT。。。为每个表选择语句:

SELECT 'INSERT INTO <new_schema>.' || table_name || ' SELECT * FROM <old_schema>.' || table_name || ';'
FROM EXA_ALL_TABLES
WHERE table_schema='<old_schema>';

复制粘贴结果并运行它以生成实际副本。

感谢您的建议:

为了复制模式中所有表的DDL,我有一种简单的方法可以为我们提供所有表的DDL:

选择t1.CREATE|u语句| t2.PK | |''从…起 当C.COLUMN|u默认值不为空时,选择C.COLUMN|u TABLE、'CREATE TABLE'| C.COLUMN|u TABLE | | | | | | group_concat'''| C.COLUMN|u NAME |''“| | | COLUMN| TYPE | case C.COLUMN_是_NULLABLE='true'或C.COLUMN_默认为'NULL',C.COLUMN_则是_NULLABLE='false' “DEFAULT”|| C.COLUMN|u DEFAULT end | |当C.COLUMN|u为_NULLABLE='false'时,则为“NOT NULL”end 按列排序顺序位置创建语句 来自EXA_所有_列C 哪里 upperC.COLUMN\u SCHEMA=upper'Source\u SCHEMA'和COLUMN\u object\u type='TABLE' 按C.COLUMN\u模式分组,按C.COLUMN\u表顺序按C.COLUMN\u表t1左联接 选择约束|表',主键'| |组|连接''| |列|名称| |'“'按顺序| | |'主键 从EXA_所有_约束_列,其中 constraint_type='PRIMARY KEY'和upperCOnstraint_SCHEMA=upper'Source_SCHEMA'按约束表t2分组 在t1上。列_表=t2。约束_表 1号订单

将源_模式替换为您的模式名称,它将生成可在EXAplus上运行的Create语句


对于复制数据,我使用了与您在第2步中提到的相同的方法。

谢谢@wildraid!您能否共享ddl提取的官方脚本,因为您提供的链接需要一个Exasol客户帐户。@bear911,我建议创建一个免费社区帐户:它应该允许您查看所有SOL票证的内容。它是非常有用。