テーブルの構造を調べる方法あれこれ
ちょっと色々と調べていたのでメモ変わりにエントリー
テーブルの構造を取得する
MySQL AB :: MySQL 5.1 リファレンスマニュアル :: 12.3.1 DESCRIBE 構文
mysql> DESC user; +-----------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+-------------+------+-----+---------+----------------+ | id | int(4) | NO | PRI | NULL | auto_increment | | nick_name | varchar(30) | NO | | | | | password | char(50) | NO | | | | | last_name | varchar(50) | NO | | | | | first_name | varchar(50) | NO | | | | | user_type_id | tinyint(4) | NO | | 0 | | | admin_flg | tinyint(1) | NO | | 0 | | | advisement_flg | tinyint(1) | NO | | 0 | | | update_datetime | datetime | NO | | | | | regist_datetime | datetime | NO | | | | | available | tinyint(1) | NO | | 1 | | +-----------------+-------------+------+-----+---------+----------------+ 11 rows in set (0.02 sec)
実体は SHOW COLUMNS が実行されている。
mysql> SHOW COLUMNS FROM user; +-----------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+-------------+------+-----+---------+----------------+ | id | int(4) | NO | PRI | NULL | auto_increment | | nick_name | varchar(30) | NO | | | | | password | char(50) | NO | | | | | last_name | varchar(50) | NO | | | | | first_name | varchar(50) | NO | | | | | user_type_id | tinyint(4) | NO | | 0 | | | admin_flg | tinyint(1) | NO | | 0 | | | advisement_flg | tinyint(1) | NO | | 0 | | | update_datetime | datetime | NO | | | | | regist_datetime | datetime | NO | | | | | available | tinyint(1) | NO | | 1 | | +-----------------+-------------+------+-----+---------+----------------+
結果は当然、DESCと同一
コメントを取得するには?
MySQL AB :: MySQL 5.1 リファレンスマニュアル :: 12.5.4.4 SHOW COLUMNS 構文
-- FULLオプションを付けてやることによりすべてのデータを取得することができる。 SHOW FULL COLUMNS FROM table_name
コメントも取得できるところがミソ!
これさえあれば定義書もつくれちゃう♪
おまけ
該当テーブルのCreate文を取得する
SHOW CREATE TABLE table_name
すべての構造を取得する
SHOW TABLE STATUS
などなど他にもたくさんあります。一度お試しあれぃ
MySQL AB :: MySQL 5.1 リファレンスマニュアル :: 12.5.4 SHOW 構文