似たような構成のテーブルを作る時に、今までは mysqldump コマンドで -d オプションを付けてテーブル定義だけを取得するコマンドを実行していました。
これでも十分に要件は満たせるのですが、MySQL のコンソールからサクっと出したい場合もあるので、SHOW CREATE TABLE コマンドで出力してみます。
SHOW CREATE TABLE
1 | SHOW CREATE TABLE table_name; |
\G を最後に付けた方が多少は見やすいでしょうか。
1 2 3 4 | Table: table_name Create Table: CREATE TABLE `table_name` ( (省略) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
それほど使う機会はないですが、SHOW 系のコマンドは DB やテーブル、INDEX など、いざって時にすぐに情報が取り出せるので、基本的なものは覚えておくか、コマンドをまとめておくといいですね。
1 2 3 4 5 | # 指定のテーブルのINDEXの確認 SHOW INDEX FROM table_name; # テーブルの情報 SHOW TABLE STATUS; SHOW TABLE STATUS LIKE 'table_name'\G; |
よく、Rows の値がレコード数と一致しないという話を見かけますが、ストレージエンジンが InnoDB の場合は一致しないです。
昔は更新の少ない参照メインのテーブルや全文検索用のテーブルは、MyISAM のストレージエンジンを採用していましたが、この場合は Rows とレコード数が一致します。
InnoDB の場合は素直に COUNT を取得するのがいいですね。
そういえば、MySQL5.7 から InnoDB でも全文検索ができるんですね。