Get Primary Key-und Foreign Key-Einschränkung
Bekommen Primary Key-und Foreign Key-Einschränkung von MS Access-Datenbank in java-Programm.
Habe ich versucht zu verwenden desc table_name
aber es hat nicht funktioniert.
Ich habe sogar versucht DatabaseMetaData.getMetaData(null,null,"table_name")
aber es hat nicht funktioniert entweder.
- Herzlich willkommen auf Stack Overflow. Können Sie uns bitte weitere details? In welcher Weise funktioniert es also nicht?
- ich möchte constraints einer Tabelle angeben, der primary key-und foreign key einer MS Access-Datenbank-Tabelle mithilfe von java-code Wie ich es versucht haben, für mysql einfach "DESC " TABLENAME", aber in MS ACCESS funktioniert es nicht
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß nicht, ob dies Probleme mit sich bringen arbeiten mit MS-Access-Datenbank, aber das Lesen der JDBC-Spezifikation
Sie sollte die folgenden Schritte aus.
Für die erste Tabelle aus der DB verwenden
Für die erste primäre Schlüssel verwenden
Für immer Fremdschlüssel verwenden
EDIT:
Es scheint, dass es nicht implementiert war für ODBC-Treiber,
Sie haben sich dieser Beitrag, wie man die Primärschlüssel mit ODBC-Treiber arbeiten mit MS-Access-Datenbank.
hier
verwendet wird
meta.getIndexInfo(...)
zu bekommen Primärschlüsselverwenden
DatabaseMetadata
Klasse.Aus, dass die Klasse
getPrimaryKeys()
MethodeDas retrieval von meta-Daten für eine Tabelle ist einfach. Konstruieren Sie eine
SQL
auf Ihrem Tisch und führen Sie es aus. Aus der resultierendenResultSet
Sie abrufen können, dieMetaDataResultSet
enthält unter anderen Sachen den Namen des Feldes, den Feldtyp, dienullable and autoincrement
:Nur versuchen Sie dies:
Den Typ wird angegeben, wie eine integer-Konstante in java.sql.Typen.
Informationen zu den Einschränkungen abgerufen werden können, von der DatabaseMetaData können die Bienen werden aus der Verbindung. Es gibt 3 Methoden:
getPrimaryKeys(catalog,schema,table):
um eine Ergebnismenge abzurufen, die enthält einen Eintrag für jede Spalte, für jede primary key.getIndexInfo(catalog,schema,table,unique,false):
zum abrufen von Indizes, die einzigartig und anders. Rufen Sie ein ResultSet enthält einen Eintrag für jede Spalte, die für jeden index. Wenn eindeutig ist falsch, das Ergebnis enthält den eindeutigen und nicht eindeutigen Schlüsseln.getExportedKeys(catalog,schema,table):
um eine Ergebnismenge abzurufen, enthält alle Fremdschlüssel, einen Eintrag für jede Spalte, die für jede Taste.//Für immer der name der Spalte der primary key -
//und auch die foreign key-Einschränkung
Einfache Lösung: