【问题标题】:Creating replica of one schema to another schema in Exasol在 Exasol 中创建一个模式到另一个模式的副本
【发布时间】:2018-10-26 13:53:42
【问题描述】:

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

【问题讨论】:

    标签: database exasolution


    【解决方案1】:

    感谢 Wildraid 的建议 :)

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

    选择 t1.CREATE_STATEMENT||t2.PK||');'从 (选择 C.COLUMN_TABLE,'CREATE TABLE ' || C.COLUMN_TABLE ||'(' || group_concat( '“'||C.COLUMN_NAME||'“' || ' ' || COLUMN_TYPE || cas​​e when (C .COLUMN_DEFAULT 不为空 和 C.COLUMN_IS_NULLABLE='true') or(C.COLUMN_DEFAULT'NULL' and C.COLUMN_IS_NULLABLE='false') 然后 '默认' || C.COLUMN_DEFAULT 结束 ||当 C.COLUMN_IS_NULLABLE='false' 然后 'NOT NULL' 结束时的情况 按 column_ordinal_position 排序)CREATE_STATEMENT 从 EXA_ALL_COLUMNS C 在哪里 上(C.COLUMN_SCHEMA)=上('Source_Schema')和column_object_type='TABLE' 按 C.COLUMN_SCHEMA 分组,按 C.COLUMN_TABLE 排序 C.COLUMN_TABLE ) t1 左连接 (select CONSTRAINT_TABLE,', PRIMARY KEY (' ||group_concat('“'||COLUMN_NAME||'“' order by ordinal_position) || ')' PK 从 EXA_ALL_CONSTRAINT_COLUMNS 哪里 constraint_type='PRIMARY KEY' 和 upper(CONstraint_SCHEMA)=upper('Source_Schema') 按 CONSTRAINT_TABLE 分组) t2 在 t1.COLUMN_TABLE=t2.constraint_table 按 1 排序;

    将 Source_Schema 替换为您的架构名称,它将生成您可以在 EXAplus 上运行的 Create 语句。

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

    【讨论】:

      【解决方案2】:

      好的,这个问题包含两个较小的问题。

      1) 如何复制schema中所有对象的DDL

      如果您只需要复制少量模式,最快的方法是使用 ExaPlus 客户端。右键单击模式名称并选择“CREATE DDL”。它将为您提供 SQL 来创建所有对象。您可以简单地在新模式的上下文中运行此 SQL。

      如果非要自动化的话,可以看看这个官方脚本:https://www.exasol.com/support/browse/SOL-231

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

      2) 如何复制数据

      这更容易。只需运行以下 SQL 即可为每个表生成 INSERT ... SELECT 语句:

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

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

      【讨论】:

      • 谢谢@wildraid!您能否分享一下 ddl 提取的官方脚本,因为您提供的链接需要 Exasol 客户帐户。
      • @bear911,我建议创建一个免费的社区帐户:exasol.com/portal/display/REG/Registration它应该可以让你看到所有SOL门票的内容。挺好用的。
      猜你喜欢
      • 2021-03-16
      • 1970-01-01
      • 2015-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-20
      • 1970-01-01
      相关资源
      最近更新 更多