文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (美国信纸) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  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 值应用于新表。