CREATE ...CLONE 命令:克隆包含混合表的数据库和架构(待定)

注意

此行为变更包含在 2024_08 捆绑包中。

有关捆绑包的当前状态,请参阅 捆绑包历史记录

由于 混合表 当前不支持克隆,因此在尝试 克隆 包含混合表的数据库或架构时,请注意以下行为:

变更前:

所有 CREATE DATABASE ...CLONE 和 CREATE SCHEMA ...CLONE 命令 都会自动跳过混合表(如果指定的数据库或架构中存在混合表)。

变更后:

如果指定的架构中存在任何混合表,CREATE SCHEMA ...CLONE 命令会返回错误。 例如,以下命令会失败:

CREATE SCHEMA dst CLONE src;
Copy
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;
Copy

CREATE DATABASE ...CLONE 命令如果使用 Time Travel 并使用 STATEMENT 参数,则在指定数据库中存在任何混合表时,它会返回错误。例如,以下命令会失败:

CREATE DATABASE dst CLONE src
  BEFORE (STATEMENT => '01b7676a-0002-d908-0000-a99500f6e00e');
Copy
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;
Copy

其他 CREATE DATABASE ...CLONE 命令(包括那些将 Time Travel 与 TIMESTAMP 和 OFFSET 参数一起使用的命令)会静默跳过混合表(如果指定数据库中存在混合表)。换句话说,这些命令的行为不会发生改变。

参考:1792

语言: 中文