JDBC und SQLite Datenbank

Christopher25

Bekanntes Mitglied
Hallo zusammen.

Ich habe da eine Frage.
Wenn ich mit folgendem SQL-Statement eine Tabelle erstelle in SQLite,
und dann per JDBC abfrage, "Gib mir mal alle Primärschlüssel-Spalten" undzwar mit der Methode "getPrimaryKeys(String catalog, String schema, String tablename)" über die DatabaseMetaData, bekomme ich lediglich nur einen einzigen primärschlüssel zurück. Die anderen im Create-Statement angegebenen Primärschlüsselfelder werden lediglich als Not Nullable angezeigt.
Hier nun das Create-Statement:

CREATE TABLE Test (id Integer(255), foreignkey Integer(255), text Varchar(1000), PRIMARY KEY(id, foreignkey));

Merkwürdig finde ich auch, dass wenn ich id ausschließlich "klein" schreibe, bekommt die Datenbank es gebacken, id als Primärschlüssel zu machen.
Wenn ich id mit nur einem einzigen Großbuchstaben schreibe zb. "ID" oder "iD" oder "Id", dann bekomme ich keinen Primärschlüssel zurück und "Id" ist dann auch nurnoch Not Nullable.
Selbst wenn ich PRIMARY KEY direkt zur Spalte definiere also (id Integer PRIMARY KEY, ...) ist dies der Fall.
Diese Vorkommnisse betreffen nur die SQLite Datenbank und mit MySQL, H2 sowie MSSQL treten diese Fehler nicht auf. Eine PostgreSQL Datenbank habe ich leider noch nicht testen können.
 
Leider hilft das nicht. Hier folgendes Create-Statement mitdem ich das gerade getestet habe:

Code:
CREATE TABLE TTT(spaltenname1 INTEGER(100) NOT NULL, spaltenname2 INTEGER(100) NOT NULL, spaltenname3 INTEGER(100) NOT NULL, spaltenname4 INTEGER(100), PRIMARY KEY(spaltenname1, spaltenname2));
 
Schon mal auf der Seite von SQLite nachgeschaut?

Optionally, a PRIMARY KEY for the table. Both single column and composite (multiple column) primary keys are supported.
 
also bei funktioniert es
Code:
CREATE TABLE user(
id INTEGER NOT NULL,
userid INTEGER NOT NULL,
username TEXT,
PRIMARY KEY(id,userid))
 

Neue Themen


Zurück
Oben