Friday, 26 August 2011

Oracle: List all foreign key constraints for a table

In SQL below, replace the <TABLE_NAME> with the table name for which you want to list out all the referential integrity constraints:

 SELECT
    AC.CONSTRAINT_NAME,
    ACC.COLUMN_NAME,
    AR.TABLE_NAME,
    ARC.COLUMN_NAME
FROM ALL_CONSTRAINTS AC,
    ALL_CONSTRAINTS AR,
    ALL_CONS_COLUMNS ACC,
    ALL_CONS_COLUMNS ARC
WHERE AC.CONSTRAINT_TYPE = 'R'
    AND AC.R_OWNER = AR.OWNER
    AND AC.R_CONSTRAINT_NAME = AR.CONSTRAINT_NAME
    AND AC.CONSTRAINT_NAME = ACC.CONSTRAINT_NAME
    AND AC.OWNER = ACC.OWNER
    AND AR.CONSTRAINT_NAME = ARC.CONSTRAINT_NAME
    AND AR.OWNER = ARC.OWNER
    AND AC.TABLE_NAME = UPPER('<TABLE_NAME>');

No comments:

Post a Comment