Ich versuche, die eindeutigen Einschränkungen einer Tabelle mit Java zu finden (auf einer Oracle-Datenbank, aber das sollte keinen Unterschied machen).
Ich habe einen Weg gefunden, um die Primärschlüssel einer Tabelle zu entdecken, dank DatMetData's getPrimaryKeys (....); Jedoch konnte ich die einzigartigen Konstanten der Tabellen nicht finden, und das Internet konnte mir nicht helfen, daher beende ich hier meine Frage:)
Gibt es einen sauberen Weg, um die eindeutigen Bedingungen (oder besser gesagt die Namen der Spalten, die für eine Tabelle eindeutig sein müssen, zu finden. Nun, Sie bekommen es hehe) einer Tabelle? Mit freundlichen Grüßen,
Nils
Eindeutige Einschränkungen werden normalerweise von einem Index erzwungen. Vielleicht verwenden Sie %code% , um die Indizes zu finden, bei denen der nicht eindeutige Wert falsch ist?
Wenn Oracle Indizes für eindeutige Constraints erstellt (ich weiß nicht, ob dies der Fall ist, müssen Sie das überprüfen), dann können Sie über %code%
Ihre Constraints herausfindenSie können das Datenwörterbuch abfragen:
%Vor%Da die meisten Datenbanken diese Einschränkungen als Index speichern, können Sie DatabaseMetaData.getIndexInfo () wie bereits erwähnt. Dies funktionierte gut bei der Verwendung von Postgresql .
Es ist nur wichtig, %code% mit dem vierten Parameter als %code% aufzurufen, da die Dokumentation besagt:
%code% - wenn wahr, nur Indizes für eindeutige Werte zurückgeben; wenn falsch, Rückgabe von Indizes unabhängig davon, ob eindeutig oder nicht
Mit dem folgenden Code:
%Vor%können Sie anrufen:
%Vor%und erhalten Sie eine Liste aller eindeutigen Einschränkungen für eine bestimmte Tabelle zurück. Die Einschränkungen sind nach Index gruppiert, da ein Index mehrere Spalten abdecken kann, wenn sie nur in Kombination eindeutig sind.