CREATE ...CLONE 命令:克隆包含混合表的数据库和架构(待定)¶
由于 混合表 当前不支持克隆,因此在尝试 克隆 包含混合表的数据库或架构时,请注意以下行为:
- 变更前:
所有 CREATE DATABASE ...CLONE 和 CREATE SCHEMA ...CLONE 命令 都会自动跳过混合表(如果指定的数据库或架构中存在混合表)。
- 变更后:
如果指定的架构中存在任何混合表,CREATE SCHEMA ...CLONE 命令会返回错误。 例如,以下命令会失败:
CREATE SCHEMA dst CLONE src;
392105 (0A000): SQL execution error: Cloning a SCHEMA which contains a HYBRID TABLE is unsupported. To perform the clone while skipping HYBRID TABLES, append the `IGNORE HYBRID TABLES` syntax to your DDL.
该错误提示您使用 IGNORE HYBRID TABLES 参数 运行命令。使用此参数时,该命令将创建克隆架构,但会跳过任何混合表。例如:
CREATE SCHEMA dst CLONE src IGNORE HYBRID TABLES;
CREATE DATABASE ...CLONE 命令如果使用 Time Travel 并使用 STATEMENT 参数,则在指定数据库中存在任何混合表时,它会返回错误。例如,以下命令会失败:
CREATE DATABASE dst CLONE src BEFORE (STATEMENT => '01b7676a-0002-d908-0000-a99500f6e00e');
392106 (0A000): SQL execution error: Time Travel cloning a DATABASE which contains a HYBRID TABLE, when specifying the time via a `STATEMENT` is unsupported. To perform the clone while skipping HYBRID TABLES, append the `IGNORE HYBRID TABLES` syntax to your DDL.
该错误提示您使用 IGNORE HYBRID TABLES 参数。使用此参数时,该命令将创建克隆数据库,但会跳过任何混合表。例如:
CREATE DATABASE dst CLONE src BEFORE (STATEMENT => '01b7676a-0002-d908-0000-a99500f6e00e') IGNORE HYBRID TABLES;
其他 CREATE DATABASE ...CLONE 命令(包括那些将 Time Travel 与 TIMESTAMP 和 OFFSET 参数一起使用的命令)会静默跳过混合表(如果指定数据库中存在混合表)。换句话说,这些命令的行为不会发生改变。
参考:1792