アプリ版:「スタンプのみでお礼する」機能のリリースについて

SHOW CREATE TABLE posts;
以上のコマンドですが どんなときに使用するのでしょうか
よろしくお願いいたします。
mysql> SHOW CREATE TABLE posts;
+-------+------------------------------+
| Table | Create Table |
+-------+-----------------+
| posts | CREATE TABLE `posts` (
`message_id` int(11) NOT NULL AUTO_INCREMENT,
`message` text,
`created_by` int(11) DEFAULT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`message_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 |
+-------+---+
1 row in set (0.00 sec)

A 回答 (3件)

RDBMSは表、インデックスなどの様々な定義情報を管理しています。



表やインデックスなどの定義内容を、後から確認したいということは普通にありますよね。

それらの定義情報は、ディクショナリやシステムカタログなどRDBMSにより呼び名や管理方式、管理情報が異なりますが、利用者が参照できる仕組みが提供されています。

標準SQL準拠でMySQLでも実装されているのが、情報スキーマ(INFORMATION_SCHEMA)です。各RDBMSにより管理する資源や方式が違うものを、共通のテーブル名、列名などで得られるようにしたもので、SQLのSELECT文で情報を得ることができます。

例えば定義されている表名を知りたい時、その方法は各RDBMSの独自命令を使う必要があります。

しかし、今日では標準SQL準拠の多くのRDBMSで、INFORMATION_SCHEMAのTABLES表をSQLのSELECT文で得られるようになっています。
https://dev.mysql.com/doc/refman/8.0/ja/informat …

ただし、各列に入っている内容は表名や列名などの基本的な項目以外は、各RDBMSの独自の管理情報であったりします。

SHOW文は、MySQLの定義情報を確認することができる独自機能です。
https://dev.mysql.com/doc/refman/8.0/ja/show.html

SHOW CREATE TABLEは、CREATE TABLEの定義内容を確認できる命令です。
単純にどのように定義したか確認するだけでなく、省略時解釈で使用する文字コード、ストレージエンジンなどが意図したものではない場合もあります。
そういった場合に、知っていて使うと便利な機能です。
    • good
    • 2
この回答へのお礼

再度ご回答下さいましてありがとうございました。
SHOW TABLES;
では
 テーブルしか出てきませんが
mysql> SHOW CREATE TABLE posts;
とすると テーブル構造が分かりますね
 何か調べるにはとてもいいコマンドだと
思います。ご回答を
 全部読みましたが、詳しいことは実際に
開発などに携わらないと、専門的なので
私のレベルからして理解できない領域です。
 今後ともよろしくお願いいたします。

お礼日時:2022/08/29 05:05

MySQLでは未実装の機能をエラーにせず、解釈を変えて定義は通すということが伝統的に行われてきています。


例えば、以下の表定義では主キーが複数列で構成され、昇順と降順が混在しています。

CREATE TABLE t1
(c1 INT
,c2 VARCHAR(10)
,c3 DEC(5)
,PRIMARY KEY(c1,c2 DESC))
;

MySQL 5.7まではエラーになりませんが、内部的に定義変更され

PRIMARY KEY(c1,c2)

のように、すべて昇順に変更されて定義されます。
これらを確認するのにも、SHOW CREATE TABLEは必要な機能です。
    • good
    • 0

既存のテーブルからテーブル作成用のDDLを作成するコマンドです。


https://dev.mysql.com/doc/refman/5.6/ja/show-cre …
    • good
    • 2
この回答へのお礼

ご回答ありがとうございました。
ディー‐ディー‐エル【DDL】
《data definition language》
ですね
テーブル構造が 見れますね。
今後ともよろしくお願いいたします。

お礼日時:2022/08/29 05:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!