___ qstntxt ___

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

    
___ answer1677081 ___

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?

    
___ answer1674401 ___

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 herausfinden     
___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ tag123sql ___ Structured Query Language (SQL) ist eine Sprache für die Abfrage von Datenbanken. Fragen sollten Codebeispiele, Tabellenstruktur, Beispieldaten und ein Tag für die verwendete DBMS-Implementierung (z. B. MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 usw.) enthalten. Wenn sich Ihre Frage nur auf ein bestimmtes DBMS bezieht (verwendet bestimmte Erweiterungen / Funktionen), verwenden Sie stattdessen das Tag des DBMS. Antworten auf mit SQL gekennzeichnete Fragen sollten den ISO / IEC-Standard SQL verwenden. ___ tag123oracle ___ Oracle Database ist ein Datenbankmanagementsystem mit mehreren Modellen, das von Oracle Corporation erstellt wurde. Verwenden Sie dieses Tag NICHT für andere Produkte von Oracle wie Java und MySQL. ___ answer1674293 ___

Sie können das Datenwörterbuch abfragen:

%Vor%     
___ tag123unique ___ Bezieht sich auf ein Element, das sich deutlich von allen anderen Elementen in einer Sammlung unterscheidet. ___ tag123constraints ___ Eine Einschränkung ist eine Bedingung, die in einem bestimmten Kontext erfüllt sein muss. Constraints werden typischerweise in Datenbanken und Programmiersprachen verwendet, um Fehler zu erkennen, Datenkonsistenz und Genauigkeit sicherzustellen und Geschäftsanforderungen durchzusetzen. ___ answer48042309 ___

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.

    
___

8

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

    
Nils 04.11.2009, 14:47
quelle

4 Antworten

20

Sie können das Datenwörterbuch abfragen:

%Vor%     
Vincent Malgrat 04.11.2009 14:54
quelle
0

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 getIndexInfo()

Ihre Constraints herausfinden     
JRL 04.11.2009 15:09
quelle
0

Eindeutige Einschränkungen werden normalerweise von einem Index erzwungen. Vielleicht verwenden Sie DatabaseMetaData.getIndexInfo() , um die Indizes zu finden, bei denen der nicht eindeutige Wert falsch ist?

    
Adam Hawkes 04.11.2009 22:20
quelle
0

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, getIndexInfo() mit dem vierten Parameter als true aufzurufen, da die Dokumentation besagt:

  

unique - 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.

    
Silveri 31.12.2017 12:08
quelle

Tags und Links