MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む
このページは機械翻訳したものです。
SHOW CREATE TABLE tbl_name
指定されたテーブルを作成する CREATE TABLE ステートメントを表示します。 このステートメントを使用するには、そのテーブルに対する何らかの権限が必要です。 また、このステートメントはビューでも機能します。
mysql> SHOW CREATE TABLE t\G
*************************** 1. row ***************************
Table: t
Create Table: CREATE TABLE `t` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`s` char(60) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
MySQL 8.0.16 では、MySQL によって CHECK 制約が実装され、SHOW CREATE TABLE によって表示されます。 すべての CHECK 制約がテーブル制約として表示されます。 つまり、カラム定義の一部として最初に指定された CHECK 制約は、カラム定義の一部ではなく別の句として表示されます。 例:
mysql>CREATE TABLE t1 (i1 INT CHECK (i1 <> 0), -- column constrainti2 INT,CHECK (i2 > i1), -- table constraintCHECK (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(11) DEFAULT NULL, `i2` int(11) 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 オプションの値に従って、テーブル名とカラム名を引用符で囲みます。 セクション5.1.8「サーバーシステム変数」を参照してください。
テーブルのストレージエンジンを変更する場合、新しいストレージエンジンに適用できないテーブルオプションはテーブル定義に保持され、必要に応じて、以前に定義されたオプションを持つテーブルを元のストレージエンジンに戻すことができます。 たとえば、ストレージエンジンを InnoDB から MyISAM に変更する場合、ROW_FORMAT=COMPACT などの InnoDB 固有のオプションは保持されます。
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
strict mode を無効にしてテーブルを作成する場合、指定した行フォーマットがサポートされていないと、ストレージエンジンのデフォルトの行フォーマットが使用されます。 テーブルの実際の行形式は、SHOW TABLE STATUS に応じて Row_format カラムにレポートされます。 SHOW CREATE TABLE には、CREATE TABLE ステートメントで指定された行形式が表示されます。