文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  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,“產生的不可見主鍵”