MySQL

MySQLで作成済のテーブルからテーブル定義を取得する

似たような構成のテーブルを作る時に、今までは mysqldump コマンドで -d オプションを付けてテーブル定義だけを取得するコマンドを実行していました。

これでも十分に要件は満たせるのですが、MySQL のコンソールからサクっと出したい場合もあるので、SHOW CREATE TABLE コマンドで出力してみます。

SHOW CREATE TABLE

\G を最後に付けた方が多少は見やすいでしょうか。

それほど使う機会はないですが、SHOW 系のコマンドは DB やテーブル、INDEX など、いざって時にすぐに情報が取り出せるので、基本的なものは覚えておくか、コマンドをまとめておくといいですね。

よく、Rows の値がレコード数と一致しないという話を見かけますが、ストレージエンジンが InnoDB の場合は一致しないです。

昔は更新の少ない参照メインのテーブルや全文検索用のテーブルは、MyISAM のストレージエンジンを採用していましたが、この場合は Rows とレコード数が一致します。

InnoDB の場合は素直に COUNT を取得するのがいいですね。

そういえば、MySQL5.7 から InnoDB でも全文検索ができるんですね。