Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  CREATE TABLE ... LIKE Statement

15.1.20.3 创建表...像语句

使用CREATE TABLE ... LIKE根据另一个表的定义创建一个空表,包括原始表中的列属性和索引:

CREATE TABLE new_tbl LIKE orig_tbl;

复制使用了原始表的同一版本存储格式。对原始表需要SELECT权限。

LIKE只适用于基本表,不适用于视图。

Important

LOCK TABLES语句生效时不能执行CREATE TABLECREATE TABLE ... LIKE

CREATE TABLE ... LIKECREATE TABLE执行相同的检查,这意味着如果当前SQL模式不同于原始表创建时的模式,表定义可能在新模式下被认为无效导致语句失败。

对于CREATE TABLE ... LIKE,目标表保留了原始表中的生成列信息。

对于CREATE TABLE ... LIKE,目标表保留了原始表中的表达式默认值。

对于CREATE TABLE ... LIKE,目标表保留原始表的CHECK约束,但所有约束名称都被生成。

CREATE TABLE ... LIKE 不保留原始表指定的任何DATA DIRECTORYINDEX DIRECTORY选项,也不保留外键定义。

如果原始表是TEMPORARY表,CREATE TABLE ... LIKE 不保留TEMPORARY。要创建TEMPORARY目标表,请使用CREATE TEMPORARY TABLE ... LIKE

CREATE TABLE ... LIKE 操作将所有ENGINE_ATTRIBUTESECONDARY_ENGINE_ATTRIBUTE值应用于新表。