文档首页
MySQL 9.0 参考手册
相关文档 下载此手册

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

15.7.7.11 SHOW CREATE TABLE 语句

Press CTRL+C to copy
SHOW CREATE TABLE tbl_name

显示用于创建指定表的 CREATE TABLE 语句。要使用此语句,您必须对该表拥有某种权限。此语句也适用于视图。

Press CTRL+C to copy
mysql> SHOW CREATE TABLE t\G *************************** 1. row *************************** Table: t Create Table: CREATE TABLE `t` ( `id` int NOT NULL AUTO_INCREMENT, `s` char(60) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

SHOW CREATE TABLE 将所有 CHECK 约束显示为表约束。也就是说,最初作为列定义的一部分指定的 CHECK 约束将显示为单独的子句,而不是列定义的一部分。示例

Press CTRL+C to copy
mysql> CREATE TABLE t1 ( i1 INT CHECK (i1 <> 0), -- column constraint i2 INT, CHECK (i2 > i1), -- table constraint CHECK (i2 <> 0) NOT ENFORCED -- table constraint, not enforced ); mysql> SHOW CREATE TABLE t1\G *************************** 1. row *************************** Table: t1 Create Table: CREATE TABLE `t1` ( `i1` int DEFAULT NULL, `i2` int DEFAULT NULL, CONSTRAINT `t1_chk_1` CHECK ((`i1` <> 0)), CONSTRAINT `t1_chk_2` CHECK ((`i2` > `i1`)), CONSTRAINT `t1_chk_3` CHECK ((`i2` <> 0)) /*!80016 NOT ENFORCED */ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

SHOW CREATE TABLE 根据 sql_quote_show_create 选项的值引用表名和列名。参见 第 7.1.8 节,“服务器系统变量”.

更改表的存储引擎时,不适用于新存储引擎的表选项将保留在表定义中,以便在必要时将表及其先前定义的选项还原到原始存储引擎。例如,将存储引擎从 InnoDB 更改为 MyISAM 时,特定于 InnoDB 的选项(如 ROW_FORMAT=COMPACT)将保留,如下所示

Press CTRL+C to copy
mysql> CREATE TABLE t1 (c1 INT PRIMARY KEY) ROW_FORMAT=COMPACT ENGINE=InnoDB; mysql> ALTER TABLE t1 ENGINE=MyISAM; mysql> SHOW CREATE TABLE t1\G *************************** 1. row *************************** Table: t1 Create Table: CREATE TABLE `t1` ( `c1` int NOT NULL, PRIMARY KEY (`c1`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=COMPACT

当在禁用严格模式的情况下创建表时,如果指定的行格式不受支持,则使用存储引擎的默认行格式。表的实际行格式在响应SHOW TABLE STATUS时,将在Row_format列中报告。 SHOW CREATE TABLE显示了在CREATE TABLE语句中指定的行格式。

SHOW CREATE TABLE还包括表生成的不可见主键的定义,如果它有这样的主键,默认情况下。您可以通过设置show_gipk_in_create_table_and_information_schema = OFF,来使此信息在语句的输出中被抑制。有关更多信息,请参见第 15.1.20.11 节“生成的不可见主键”