Spec-Zone.ru › MySQL 8.4

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.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/show-create-table.html

Spec-Zone.ru

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