Fremdschlüssel einer Tabelle abrufen
Mit dem JDBC Metadata Explorer können Sie die Fremdschlüssel (Name und Spalteninformationen) einer bestimmten Tabelle abrufen.
Input
Einem Input-XML-Dokument fügen Sie dazu innerhalb eines beliebigen Wurzel-Elements das Element <foreignkeys resulttag=" Ergebniselementname "/>
hinzu, in dessen Attribut resulttag
Sie einen gültigen XML-Namen angeben. Die Angabe einer Tabelle in Element <table>
ist dabei erforderlich; die Elemente <catalog>
und <schema>
sind jedoch optional.
<Root>
<foreignkeys resulttag="Ergebniselementname">
<catalog>Katalog</catalog>
<schema>DB-Schema</schema>
<table>DB-Tabelle (Pflichtfeld, darf nicht leer sein)</table>
</foreignkeys>
</Root>
Output
Die XML-Struktur, die vom Adapter ausgegeben wird, enthält innerhalb des Wurzel-Elements <Data>
ein Element, dessen Name in der Input-Struktur im Attribut resulttag
angegeben wurde und das die Metadaten zu jedem Fremdschlüssel in der Tabelle enthält. Wenn es zu einem Abruf mehrere Ergebnisse gibt (d. h. mehrere Fremdschlüsselspalten), so werden diese jeweils in einem separaten Element ausgegeben.
<Data>
<Ergebniselementname>
<Fremdschlüssel-Eigenschaft>Wert</Fremdschlüssel-Eigenschaft>
...
</Ergebniselementname>
</Data>
Erläuterungen (englischsprachig) zu den einzelnen Spalten-Eigenschaften finden Sie hier.
Beispiel
In einem Input-XML-Dokument wird folgende XML-Struktur definiert, um die Fremdschlüssel der Tabelle Provider auszugeben:
<Root>
<foreignkeys resulttag="historykeys">
<table>Provider</table>
</foreignkeys>
</Root>
Der JDBC Metadata Explorer gibt daraufhin z. B. folgendes Ergebnis-XML-Dokument aus:
<Data>
<historykeys>
<PKTABLE_CAT>port</PKTABLE_CAT>
<PKTABLE_SCHEM>dbo</PKTABLE_SCHEM>
<PKTABLE_NAME>NETWORK</PKTABLE_NAME>
<PKCOLUMN_NAME>NETWORK</PKCOLUMN_NAME>
<FKTABLE_CAT>port</FKTABLE_CAT>
<FKTABLE_SCHEM>dbo</FKTABLE_SCHEM>
<FKTABLE_NAME>PROVIDER</FKTABLE_NAME>
<FKCOLUMN_NAME>NETWORK</FKCOLUMN_NAME>
<KEY_SEQ>1</KEY_SEQ>
<UPDATE_RULE>1</UPDATE_RULE>
<DELETE_RULE>1</DELETE_RULE>
<FK_NAME>FK_PROVIDER_NETWORK1</FK_NAME>
<PK_NAME>PK_NETWORK</PK_NAME>
<DEFERRABILITY>7</DEFERRABILITY>
</historykeys>
</Data>