Spec-Zone.ru › MySQL 9.2

15.7.7.12 Запрос SHOW 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 ограничения в виде ограничений таблицы. То есть, ограничение, первоначально указанное в качестве части определения столбца, отображается как отдельный пункт, не являющийся частью определения столбца. Пример:

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

При создании таблицы с отключённым CREATE TABLE t1 (c1 INT PRIMARY KEY) ROW_FORMAT=COMPACT ENGINE=InnoDB;, используется форма строки по умолчанию для движка хранения, если указанная форма строки не поддерживается. Фактическая форма строки таблицы сообщается в столбце Row_format в ответ на запрос SHOW TABLE STATUS. SHOW CREATE TABLE отображает формат строки, который был указан в запросе CREATE TABLE.

SHOW CREATE TABLE также включает определение сгенерированного невидимого первичного ключа таблицы, если таковой есть, по умолчанию. Вы можете подавить эту информацию в выводе запроса, установив show_gipk_in_create_table_and_information_schema = OFF. Дополнительную информацию см. в Разделе 15.1.21.11, «Сгенерированные невидимые первичные ключи».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/show-create-table.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API