15.7.7.11 Отображение инструкции CREATE TABLE
SHOW CREATE TABLE tbl_name
Отображает инструкцию CREATE TABLE, которая создаёт указанную таблицу. Для использования этой инструкции требуется соответствующее разрешение на таблицу. Эта инструкция также работает с представлениями.
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 ограничение, первоначально указанное в качестве части определения столбца, отображается как отдельный оператор, не являющийся частью определения столбца. Пример:
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, сохраняются, как показано здесь:
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
При создании таблицы со значением disabled, используется по умолчанию формат строк движка хранения, если указанный формат строк не поддерживается. Фактический формат строк таблицы отображается в столбце Row_format в ответ на SHOW TABLE
STATUS. SHOW CREATE
TABLE показывает формат строк, который был указан в инструкции CREATE TABLE.
SHOW CREATE TABLE также включает определение сгенерированного невидимого первичного ключа таблицы, если он существует, по умолчанию. Вы можете подавить эту информацию в выходных данных инструкции, установив show_gipk_in_create_table_and_information_schema
= OFF. Дополнительную информацию см. в Разделе 15.1.20.11, «Сгенерированные невидимые первичные ключи».
© 2025 Oracle
Licensed under the GPLv2 License.