文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美國信紙尺寸) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  SHOW CREATE TABLE 陳述式

15.7.7.11 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 約束顯示為資料表約束。也就是說,最初指定為欄定義一部分的 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

當在停用嚴格模式的情況下建立資料表時,如果指定的列格式不受支援,則會使用儲存引擎的預設列格式。資料表的實際列格式會在回應 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 節,「產生的隱形主鍵」