13.7.5.10 SHOW CREATE TABLE 语句

SHOW CREATE TABLE tbl_name

显示创建命名 table 的CREATE TABLE语句。要使用此语句,您必须对 table 具有某些特权。该语句也适用于视图。

mysql> SHOW CREATE TABLE t\G
*************************** 1. row ***************************
       Table: t
Create Table: CREATE TABLE `t` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `s` char(60) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

显示创建 table根据sql_quote_show_create选项的值对 table 名和列名加引号。参见第 5.1.7 节“服务器系统变量”

更改 table 的存储引擎时,不适用于新存储引擎的 table 选项将保留在 table 定义中,以便在必要时将具有其先前定义的选项的 table 恢复到原始存储引擎。例如,将存储引擎从 InnoDB 更改为 MyISAM 时,将保留特定于 InnoDB 的选项,例如ROW_FORMAT=COMPACT

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(11) NOT NULL,
  PRIMARY KEY (`c1`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT

创建禁用了strict mode的 table 时,如果不支持指定的行格式,则使用存储引擎的默认行格式。响应显示 table 格状态,table 的实际行格式在Row_format列中报告。 显示创建 table显示CREATE TABLE语句中指定的行格式。