2012-01-06 10 views
0

異なるデータソースを指定すると、データベース内のすべての外部キーを探したいと思います。 DBには、SQLiteからSQL Server、Oracleにいたるまで何でも構いません。それを行う一般的な方法はありますか? ORMが役立つかもしれませんか?リレーショナルDB内のすべての外部キーを検索 - 特定のRDBMSなし

SOの上には、oneのような素晴らしいスクリプトがいくつかあります。しかし、これはSQL Server固有のものであり、問​​題の一般的な性質を研究したいと考えています。

+1

各RDBSは独自のデータ辞書を持っている(私の知る限り覚えているように、十分なANSI互換性はありません)SQLiteの中で最も可能性の高いない 、いいえ、一般的な解決策はありません。 –

+0

ほとんどのRDBMS実装では、引用した質問/回答で使用されている情報スキーマビューをサポートする必要があります。 –

+1

INFORMATION_SCHEMAが可能性があります。 –

答えて

3

RDBMSにとらわれない唯一の希望は、INFORMATION_SCHEMAビューを使用することです。このビューは、ANSI-SQL互換のデータベースシステムでサポートされる必要があります。

INFORMAITON_SCHEMAを使用して参照整合性制約を見つける方法については、this SO questionを参照してください。 オラクル、 のMySQLとPostgreSQLなどでそのべき作品のようなクエリ - しかし

+1

Oracleは、「INFORMATION_SCHEMA」 –

+2

@a_horse_with_no_name:** boo **、Oracle!をサポートしていません。残念ながら、ANSI SQL標準の実際の価値は実際にはほんの少ししかないことを示しています。 –