このページは機械翻訳したものです。
Press CTRL+C to copySHOW CREATE TABLE tbl_name
指定されたテーブルを作成する CREATE TABLE
ステートメントを表示します。 このステートメントを使用するには、そのテーブルに対する何らかの権限が必要です。 また、このステートメントはビューでも機能します。
Press CTRL+C to copymysql> 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
制約は、カラム定義の一部ではなく別の句として表示されます。 例:
Press CTRL+C to copymysql> 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(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 固有のオプションは保持されます。
Press CTRL+C to copymysql> 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
ステートメントで指定された行形式が表示されます。