プロが教えるわが家の防犯対策術!

mySQLで、そのテーブルのプライマリーキーのカラム名を取得する方法を
教えてください。

よろしくお願いします。

http://oshiete1.goo.ne.jp/qa3699289.html
のようなSQL文で取得できるのが理想です。

A 回答 (2件)

>SHOWコマンドを使用する方法



いくつか方法があります。

1.DESCRIBE
(1)概要
 表の列構成を知りたい場合などに有用

(2)マニュアル記載
 http://dev.mysql.com/doc/refman/5.1/ja/describe. …

(3)使用例
 DESC 表名

(4)備考
 主キーを複数列で構成した場合など、構成順は得られない

2.SHOW COLUMNS FROM
(1)概要
 表の構成列を知りたい場合などに有用

(2)マニュアル記載先
 http://dev.mysql.com/doc/refman/5.1/ja/show-colu …

(3)使用例
 SHOW COLUMNS FROM 表名

3.SHOW INDEXES FROM
(1)概要
 どのようなインデクスが定義済か調べる
 主キーを定義(PRIMARY KEYを指定)すると、内部的にインデクスが定義されるので、この指定でも調べられる。

(2)使用例
 SHOW INDEXES FROM 表名

4.SHOW CREATE TABLE
(1)概要
 DDLの逆生成する機能であり、主キーの定義状態も確認できる。ただし、実際に定義しようとしたものが、MySQLにより変更されている場合もある。

 例 PRIMARY KEY(C1 ASC,C2 DESC)といった昇順・降順の混在は、MySQLでは実装しておらず、PRIMARY KEY(C1 ASC,C2 ASC)と勝手に変更される。

(2)使用例
 SHOW CREATE TABLE 表名

5.INFORMATION_SCHEMAを検索
(1)標準SQLでも規定されているINFORMATION_SCHEMAが、MySQL 5.0からMySQLでも実装された。ただし、データベース名、カタログ名などに何が入るかはRDBMSにより違いがある。また、各RDBMSが拡張仕様として列を追加している。

(2)マニュアル記載
http://dev.mysql.com/doc/refman/5.0/en/key-colum …

(3)使用例
SELECT * FROM INFORMATION_SCHEMA KEY_COLUMN_USAGE
WHERE TABLE_NAME='表名'
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2008/07/21 18:02

MySQLのバージョンは?



MySQL 5.0以降なら、標準SQLでも規定されているinformation_schemaが実装され、SQLで検索可能です。
MySQL 4.1までなら、SQLで得ることはできず、SHOWコマンドを使用することになります。
    • good
    • 0
この回答へのお礼

バージョンは5.0です。
information_schemaを見ましたところ、Primay Keyを確認できました。
ありがとうございました。


SHOWコマンドを使用する方法もお教え願いますでしょうか。
よろしくおねがいします。

お礼日時:2008/07/07 00:03

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

関連するカテゴリからQ&Aを探す