Liste over fremmednøkler og tabellene de refererer til
Jeg prøver å finne en spørring som vil gi meg en liste over fremmednøklene for en tabell og tabellene og kolonnene de refererer til. Jeg har kommet halvveis med
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'
Men jeg trenger fortsatt å vite hvilken tabell og primærnøkkel denne nøkkelen refererer til. Hvordan får jeg vite det?
128
3
Den refererte primærnøkkelen er beskrevet i kolonnene
r_owner
ogr_constraint_name
i tabellenALL_CONSTRAINTS
. Dette vil gi deg den informasjonen du ønsker:Her er et universalskript som vi bruker, og som har vært utrolig nyttig.
Lagre det slik at du kan kjøre det direkte (@fkeys.sql). Med dette skriptet kan du søke etter Owner og enten Parent- eller Child-tabellen og vise relasjoner med fremmednøkler. Det nåværende skriptet spooler eksplisitt til C:\SQLRPTS, så du må opprette den mappen eller endre den linjen til noe du vil bruke.
Her er en annen løsning. Bruk av sys's standardvisninger er så treg (ca. 10s i min situasjon). Dette er mye raskere enn det (ca. 0,5 s).