文档首页
MySQL 9.0 参考手册
相关文档 下载此手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  CREATE TABLE ... LIKE 语句

15.1.20.3 CREATE TABLE ... LIKE 语句

使用 CREATE TABLE ... LIKE 基于另一个表的定义创建一个空表,包括原始表中定义的任何列属性和索引。

CREATE TABLE new_tbl LIKE orig_tbl;

副本使用与原始表相同的表存储格式版本创建。需要对原始表具有 SELECT 权限。

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

重要

LOCK TABLES 语句生效时,您无法执行 CREATE TABLECREATE TABLE ... LIKE

CREATE TABLE ... LIKE 进行与 CREATE 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 值应用于新表。