Einzelnen Beitrag anzeigen

ZOD

Registriert seit: 6. Mai 2009
97 Beiträge
 
#1

Ermitteln von foreign keys per SQL Abfrage auf Systemtabellen

  Alt 26. Sep 2012, 08:51
Datenbank: Interbase • Version: 7.1 • Zugriff über: SQL
Hallo,

ich habe folgende Datenbanksysteme

Interbase 7.1
Firebird 2.0 (kann ich leider in "Ergänzende Angaben" nicht zusätzlich angeben)

Auf beiden läuft "dieselbe" Datenbank.
Die Datenbank arbeitet in allen Tabellen durchgehend mit PK (integer).

Ich möchte nun über eine SQL Abfrage herausfinden, mit welchen Tabellen
eine bestimmte Tabelle über foreign keys verknüpft ist.
Dabei habe ich mich etwas verhakelt. Bisher habe ich dies:


Code:
select
relcz.rdb$relation_name as quelltabelle,
relcq.rdb$relation_name as zieltabelle,
refc.rdb$constraint_name as keyname
from rdb$relation_constraints relcq
left outer join rdb$ref_constraints refc on (refc.rdb$const_name_uq = relcq.rdb$constraint_name)
left outer join rdb$relation_constraints relcz on (relcz.rdb$constraint_name = refc.rdb$const_name_uq)
where
relcq.rdb$relation_name = 'T_QUELLTABELLE'
and
relcq.rdb$constraint_type = 'PRIMARY KEY'
Als Quelltabelle bezeichne ich die Tabelle, in der der foreign key angelegt ist.
Meine Abfrage liefert mir aber als Quelltabelle die Zieltabelle. Was mache ich falsch?
  Mit Zitat antworten Zitat