#はじめに
##概要
SQL文(SELECT文)を使ってデータベース内に存在するカラムの定義一覧を出力する方法
##背景
マイグレーションも使わず、カラム定義変更が入るたびに誰かがSQLファイルを実行する運用をしていたので、漏れが出ました。開発環境と検証環境でテーブルごとにshow table 〇〇
ってやって目で確認するのもあほらしいので、データベース内のカラム定義をSELECT文で出力しました。
##環境
Windows10(開発環境)/Amazon Linux(検証環境)
MySQL5.7
※information_schemaはRDBの標準規格になっているので、MySQLでなくても使えるかも。
#実行したSQL
SELECT
table_name,
column_name,
ordinal_position,
column_default,
is_nullable,
data_type,
character_maximum_length
FROM
information_schema.columns
WHERE
--ここでデータベース名を指定する
table_schema = ''
information_schemaのcolumnsに問い合わせるとカラムの一覧が出力されます。
上のSQLで出力している内容は以下の通りです。
カラム名 | 内容 |
---|---|
table_name | テーブル名 |
column_name | カラム名 |
ordinal_position | カラムの順番 |
column_default | カラムのデフォルト値 |
is_nullable | NULL許可か否か |
data_type | データ型 |
character_maximum_length | 長さ |
ここではshow table
コマンドで表示されそうなものをピックアップして載せています。
MySQLのリファレンスには、ここに載せていない情報についても解説されていますので、気になる方はぜひご覧ください。