【发布时间】:2013-12-09 10:26:09
【问题描述】:
我的问题特别是关于我们使用 LIKE 运算符或在 SELECT 子句的帮助下创建表的克隆或更具体的副本的方法,还从旧表中复制所有约束?
CREATE TABLE newTable LIKE oldTable;
或
CREATE TABLE newTable AS (SELECT * FROM oldTable) WITH NO DATA;
请解释上述这些语句是否会从 oldTable 创建确切的工作克隆,或者它只会从 oldTable 为 newTable 创建结构。
当我说克隆时,我希望它必须创建 oldTable 的新工作副本,该副本将应用所有约束。例如,对于我的 TIMESTAMP 列,其定义如下所示。
LAST_UPDATE_TS TIMESTAMP NOT NULL GENERATED BY DEFAULT FOR EACH ROW ON UPDATE AS ROW CHANGE TIMESTAMP;
我的 newTable 的 LAST_UPDATE_TS 是否会像在 oldTable 中一样工作?
对于每一列,我们可以有几种情况和类型的约束,因此稍后或在创建表之后手动应用所有这些约束,如上所述,这并不是一个好的选择。请解释。谢谢:)
【问题讨论】:
标签: sql database copy clone create-table