CREATE ... CLONE 命令:克隆包含混合表的数据库和架构¶
由于 混合表 对 克隆 的支持有限,因此在尝试克隆包含混合表的数据库或架构时,请注意以下行为:
- 变更前:
一般情况下,CREATE DATABASE ... CLONE 和 CREATE SCHEMA ... CLONE 命令 都会自动跳过混合表(如果指定的数据库或架构中存在混合表)。
CREATE DATABASE ...如果命令中没有指定 Time Travel 参数,或者指定了 AT TIMESTAMP 值,则 CLONE 命令将克隆混合表。
例如,以下命令会成功执行,但会跳过混合表:
以下命令成功执行,并在克隆数据库中包含混合表:
- 变更后:
CREATE SCHEMA ... 如果指定的架构中存在任何混合表,CLONE 命令将返回错误。例如,以下命令会失败:
该错误提示您使用 IGNORE HYBRID TABLES 参数 运行命令。使用此参数时,该命令将创建克隆架构,但会跳过任何混合表。例如:
CREATEDATABASE ...CLONE 命令的行为未指定 Time Travel 参数的命令*不会更改*。例如,以下命令成功执行,并在克隆的数据库中包含混合表:
CREATE DATABASE ...CLONE 命令如果使用 Time Travel 并使用 STATEMENT 参数指定时间,则在指定数据库中存在任何混合表时,它会返回错误。例如,以下命令会失败:
该错误提示您使用 IGNORE HYBRID TABLES 参数。使用此参数时,该命令将创建克隆数据库,但会跳过任何混合表。例如:
其他 CREATE DATABASE ...CLONE 命令如果指定 Time Travel 参数,并且没有为包含混合表的目标数据库使用 AT TIMESTAMP,则要么返回错误,要么自动跳过混合表:
如果(显式或默认)启用了捆绑包,这些 CREATE DATABASE ...CLONE 命令将返回错误。
如果显式禁用捆绑包,这些 CREATE DATABASE ...CLONE 命令会自动跳过混合表。
有关更多信息,请参阅 克隆包含混合表的数据库。
参考:1792