19

MySQL 5.0 のテーブルから次の制約情報を取得する方法を見つけようとしています。

  • 主キー
  • 外部キーとテーブル参照
  • ユニークな列

そのためのクエリの構文は何ですか? 私はこれに近いと感じていますが、例はありません。

4

5 に答える 5

26

MySQL の場合:

1) テーブル/フィールドのメタデータを取得する

SELECT table_schema, table_name, column_name, ordinal_position, data_type, 
       numeric_precision, column_type, column_default, is_nullable, column_comment 
  FROM information_schema.columns 
  WHERE (table_schema='schema_name' and table_name = 'table_name')
  order by ordinal_position;

また

show fields from 'table_name' 

2) Foregn Keys 参照テーブルを取得する

SELECT `REFERENCED_TABLE_NAME` 
   FROM `information_schema`.`KEY_COLUMN_USAGE`
   WHERE
       `TABLE_NAME` = 'table_name' AND
       `COLUMN_NAME` = 'Column_Name'

3) テーブルのインデックス (プライマリおよび外部) を取得する

show keys from `table_name`

5) 全インデックスと被参照テーブルを取得

SELECT *
  FROM `KEY_COLUMN_USAGE`
  WHERE
      `TABLE_NAME` = 'table_name' AND
      `TABLE_SCHEMA` = 'schema_name'

また

SELECT *
  FROM `REFERENTIAL_CONSTRAINTS`
  WHERE
      `TABLE_NAME` = 'table_name' AND
      `CONSTRAINT_SCHEMA` = 'schema_name'

6) ストアド プロシージャを取得する

SELECT * 
  FROM `ROUTINES`
  WHERE
     `ROUTINE_SCHEMA` = 'schema_name'

7) トリガーを取得する

SELECT * 
  FROM `TRIGGERS`
  WHERE 
     `TRIGGER_SCHEMA` = 'schema_name'

8) イベントを取得する

SELECT * 
  FROM `EVENTS`
  WHERE 
     `EVENT_SCHEMA` = 'schema_name'

9) ビューを取得する

SELECT *
  FROM `VIEWS`
  WHERE
      `TABLE_NAME` = 'table_name' AND
      `TABLE_SCHEMA` = 'schema_name'
于 2015-12-26T15:28:28.407 に答える
9

SHOW COLUMNSコマンドは、テーブルの主キーと一意の列を表示します。

外部キーに関しては、テーブルの複製に必要な DDL ステートメントを出力するSHOW CREATE TABLEコマンドのようなものを使用できます。

于 2009-02-04T07:46:17.953 に答える
8

使用する

 show fields from table_name
 show keys from table_name

主キー、外部キー、一意などを取得します。

外部キーによって参照されるテーブルを取得するには、次を使用します。

 SELECT `REFERENCED_TABLE_NAME` 
 FROM `information_schema`.`KEY_COLUMN_USAGE` 
 WHERE 
     `TABLE_NAME` = '[table_containing_foreign_key]' AND 
     `COLUMN_NAME` = '[foreign_key]'

[table_containing_foreign_key][foreign_key]あなたの価値観を置き換える

于 2011-09-16T12:31:06.770 に答える
2

試してみてください。INFORMATION_SCHEMA はいくつかの標準の一部であり、他のデータベースでも (ほぼ) 同様の方法でサポートされています。この標準は文書化する必要があります。その文書を探すことができます。

しかし、主な方法は、一連のテスト テーブルを作成し、そこにあるものを確認するために INFORMATION_SCHEMA を調べることです。

于 2009-02-04T07:39:26.643 に答える