0

MySQLデータベース構造を検査するためのコードを書いていますが、外部キー制約(InnoDBテーブル)に関する情報が必要です。

これを行うために私が知っている2つの方法があります:

  1. の結果を解析しますSHOW CREATE TABLE X
  2. 使用するINFORMATION_SCEMA.REFERENTIAL_CONSTRAINTS

残念ながら、オプション2にはMySQL 5.1.16以降が必要なので、サーバーの担当者に更新を説得できるまでは使用できません。オプション1はおそらく回避できますが、完全なSQLを記述しなくても面倒な感じがします。パーサーコードが常にどのテーブルでも機能するかどうかはわかりません。

この情報を入手する別の方法はありますか?

ありがとう

4

1 に答える 1

1

オンラインのMySQL5.0マニュアルから

次のように、テーブルの外部キー制約を表示することもできます。

SHOW TABLE STATUS FROM db_name LIKE 'tbl_name';

外部キー制約は、出力の[コメント]列に一覧表示されます。


ポスターは、これが外部キーの動作の重要な部分である情報を提供ON UPDATEしないことを示しています。ON DELETE

別のオプション:

関連するコードを制御しているので、同じ環境にバージョン5.1以降の別のMySQLインスタンスをセットアップすることは可能ですか?もしそうなら、そのインスタンスをダミーと呼びましょう。SHOW CREATE TABLEライブデータベースでを実行します。次に、ダミーでaを実行し、続いてクエリDROP TABLE IF EXISTからの出力を実行します。SHOW CREATE TABLE

INFORMATION_SCHEMAこれで、ダミーデータベースで情報を取得するために使用できます。

于 2011-08-16T13:55:56.727 に答える