13.1.18.3 CREATE TABLE ... LIKE 语句
使用CREATE TABLE ... LIKE
根据另一个 table 的定义创建一个空 table,包括在原始 table 中定义的所有列属性和索引:
CREATE TABLE new_tbl LIKE orig_tbl;
使用与原始 table 相同的 table 存储格式版本创建副本。原始 table 需要SELECT特权。
LIKE
仅适用于基 table,不适用于视图。
Important
LOCK TABLES语句有效时,您无法执行CREATE TABLE
或CREATE TABLE ... LIKE
。
创建 table...喜欢与CREATE TABLE进行相同的检查,而不仅仅是复制.frm
文件。这意味着,如果当前的 SQL 模式与创建原始 table 时有效的模式不同,则该 table 定义可能被认为对新模式无效,并且该语句将失败。
对于CREATE TABLE ... LIKE
,目标 table 保留从原始 table 生成的列信息。
CREATE TABLE ... LIKE
不会保留为原始 table 指定的任何DATA DIRECTORY
或INDEX DIRECTORY
table 选项或任何外键定义。
如果原始 table 是TEMPORARY
table,则CREATE TABLE ... LIKE
不保留TEMPORARY
。要创建TEMPORARY
目标 table,请使用CREATE TEMPORARY TABLE ... LIKE
。