参照整合性制約で参照されるテーブルから、定義したテーブルと制約名を取得するSQL
以下はFOOテーブルのカラムを参照するテーブルと制約名を取得するSQL。
SELECT
uc.table_name,
uc.constraint_name
FROM user_constraints uc
JOIN user_constraints ruc ON
ruc.owner = uc.r_owner AND ruc.constraint_name = uc.r_constraint_name
WHERE
uc.constraint_type = 'R' AND ruc.table_name = 'FOO'
;
使用するのはuser_constraintsビュー。
constraint_typeがRとなっているのが参照整合性制約の定義。これは該当テーブル名と制約名、参照先テーブルの一意制約名からなる。
参照整合性制約の定義を取得するビュー(uc)と、参照先の一意制約の定義を取得するするビューを(ruc)内部結合して、該当の定義を取得する。