Liste der Fremdschlüssel und der Tabellen, auf die sie verweisen
Ich versuche, eine Abfrage zu finden, die mir eine Liste der Fremdschlüssel für eine Tabelle und die Tabellen und Spalten zurückgibt, auf die sie verweisen. Ich bin auf halbem Weg dorthin mit
SELECT a.table_name,
a.column_name,
a.constraint_name,
c.owner
FROM ALL_CONS_COLUMNS A, ALL_CONSTRAINTS C
where A.CONSTRAINT_NAME = C.CONSTRAINT_NAME
and a.table_name=:TableName
and C.CONSTRAINT_TYPE = 'R'
Aber ich muss noch wissen, welche Tabelle und welcher Primärschlüssel von diesem Schlüssel referenziert werden. Wie würde ich das herausfinden?
128
3
Der referenzierte Primärschlüssel wird in den Spalten
r_owner
undr_constraint_name
der TabelleALL_CONSTRAINTS
beschrieben. So erhalten Sie die gewünschten Informationen:Hier ist ein Allzweck-Skript, das wir verwenden und das sich als unglaublich praktisch erwiesen hat.
Speichern Sie es ab, damit Sie es direkt ausführen können (@fkeys.sql). Damit können Sie nach Eigentümer und entweder der Eltern- oder Kindtabelle suchen und Fremdschlüsselbeziehungen anzeigen. Das aktuelle Skript spoolt explizit nach C:\SQLRPTS, so dass Sie diesen Ordner erstellen oder die Zeile in etwas ändern müssen, das Sie verwenden möchten.
Hier ist eine andere Lösung. Mit sys's Standard-Ansichten sind so langsam (ca. 10s in meiner Situation). Dies ist viel schneller als das (ca. 0,5s).