Wenn ich in Oracle SQL Developer die Informationen in einer Tabelle ansehe, kann ich die Einschränkungen anzeigen, mit denen ich die Fremdschlüssel sehen kann (und somit welche Tabellen in dieser Tabelle referenziert werden), und ich kann die Abhängigkeiten anzeigen, um zu sehen, was Pakete und solche verweisen auf die Tabelle. Ich bin mir jedoch nicht sicher, wie ich herausfinden soll, welche Tabellen auf die Tabelle verweisen.
Angenommen, ich schaue auf den emp
Tisch. Es gibt eine weitere Tabelle, in emp_dept
der erfasst wird, welche Mitarbeiter in welchen Abteilungen arbeiten, die auf die emp
Tabelle verweist emp_id
, den Primärschlüssel der emp
Tabelle. Gibt es eine Möglichkeit (über ein UI-Element im Programm, nicht über SQL) festzustellen, dass die emp_dept
Tabelle auf die emp
Tabelle verweist , ohne dass ich wissen muss, dass die emp_dept
Tabelle vorhanden ist?
quelle
Gehen Sie wie folgt vor, um dies als Erweiterung zu SQL Developer hinzuzufügen:
Fügen Sie die Erweiterung zu SQL Developer hinzu:
Wenn Sie zu einer beliebigen Tabelle navigieren, sollte neben SQL eine zusätzliche Registerkarte mit der Bezeichnung FK-Referenzen angezeigt werden, auf der die neuen FK-Informationen angezeigt werden.
Referenz
quelle
and owner = :OBJECT_OWNER
vorherand exists
.describe books;
undselect * from books;
wird die Registerkarte fk-Referenzen auf der Oracle SQL-Entwickler-VM nicht angezeigt.Ersetzen Sie [Ihre TABELLE] in der folgenden Abfrage durch emp
quelle
constraint_type in ('P','U')
das für überflüssig, denn wenn der Einschränkungstyp einer Einschränkung TOTO 'R' ist, ist der r_constraint_name von TOTO natürlich der Name einer Einschränkung vom Typ 'P' ODER 'U' in der referenzierten Tabelle. Es ist nicht erforderlich, dies anzugeben. Sie verwenden einIN
, es ist also wie bei vielen anderenOR
und wir kümmern uns nur um den einzigen Operanden von OR, der als wahr ausgewertet wird.Möglicherweise können Sie dies in der
ALL_CONSTRAINTS
Ansicht abfragen :quelle
SQL Developer 4.1, das im Mai 2015 veröffentlicht wurde, hat eine Registerkarte Modell hinzugefügt, auf der Tabellenfremdschlüssel angezeigt werden, die in einem Entity Relationship Diagram-Format auf Ihre Tabelle verweisen.
quelle
Wie wäre es mit so etwas:
quelle
dba_constraints
zuall_constraints
etwa so:SELECT c.constraint_name, c.constraint_type, c2.constraint_name, c2.constraint_type, c2.table_name FROM all_constraints c JOIN all_constraints c2 ON (c.r_constraint_name = c2.constraint_name) WHERE c.table_name = '<TABLE_OF_INTEREST>' AND c.constraint_TYPE = 'R';
quelle
Dies ist seit Jahren im Produkt enthalten - obwohl es 2011 nicht im Produkt enthalten war.
Klicken Sie einfach auf die Seite Modell.
Stellen Sie sicher, dass Sie mindestens Version 4.0 (veröffentlicht 2013) verwenden, um auf diese Funktion zugreifen zu können.
quelle
Um die obige Antwort für das SQL-Entwickler-Plugin zu ergänzen, hilft die Verwendung der folgenden XML-Datei dabei, die dem Fremdschlüssel zugeordnete Spalte zu ermitteln.
quelle