参照整合性制約で参照されるテーブルから、定義したテーブルと制約名を取得する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
)内部結合して、該当の定義を取得する。