アプリ版:「スタンプのみでお礼する」機能のリリースについて

外部キー制約で、参照先を調べるにはshow create tableで、
調べることが出来ると思います。

では、親テーブルが、どこから参照されているか(参照元)を調べるには
どうすればいいですか?

A 回答 (2件)

MySQLのバージョンは、何ですか?



MySQL 5.0から、information_schema(※)が実装されています。
MySQL 5.1には、さらに外部キー制約を管理する表追加されています。
これらをSQLでうまく検索すれば、容易に相手の表を調べられると思います。

http://dev.mysql.com/doc/refman/5.0/en/informati …
http://dev.mysql.com/doc/refman/5.1/ja/informati …

※表や列、インデクスの定義情報などは、各RDBMSにより独自方式で管理され、カタログ、ディクショナリなどの名前で呼ばれています。
標準SQLで、これらを共通の方式で参照できるように規定されたのが、information_schemaです。表名などを管理するtables表、列名だどを管理するcolumns表などがあります。
ただ、「データベース」などの意味合いが各RDBMSにより異なっていたりするので、同じ列に入っている情報が少し異なっていたり、拡張仕様として列や表が追加されている場合が殆どです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

REFERENTIAL_CONSTRAINTS.REFERENCED_TABLE_NAMEがそれらしいですね。
ありがとうございました!
※今、手元にあるのが5.0なので、中は確認できませんが。。

お礼日時:2008/11/01 23:34

>手元にあるのが5.0なので



information_schema.key_column_usage表を、確認してみましょう。

REFERENCED_TABLE_NAME列が参照先の表名なので、親の表名で検索してみてください。

http://dev.mysql.com/doc/refman/5.0/en/key-colum …
    • good
    • 0
この回答へのお礼

5.1で確認しました。
ありがとうございました。

お礼日時:2008/11/15 18:59

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