SQL-Primärschlüssel für mehrere Spalten
Was ist die syntax für die Angabe eines Primärschlüssel auf mehr als 1 Spalte in SQLITE ?
InformationsquelleAutor der Frage Bogdan Gavril | 2009-04-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was ist die syntax für die Angabe eines Primärschlüssel auf mehr als 1 Spalte in SQLITE ?
InformationsquelleAutor der Frage Bogdan Gavril | 2009-04-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entsprechend der Dokumentationes ist
InformationsquelleAutor der Antwort Brian Campbell
InformationsquelleAutor der Antwort xiwok
Ja. Aber denken Sie daran, dass ein solcher Primärschlüssel zulassen
NULL
Werte in beiden Spalten mehrere Male.Erstellen Sie eine Tabelle wie folgt:
Nun dieses funktioniert ohne Warnung:
InformationsquelleAutor der Antwort jsmarkus
Basic :
Wenn Ihre Spalten, die Fremdschlüssel aus anderen Tabellen (allgemeiner Fall) :
InformationsquelleAutor der Antwort compte14031879
Primary key-Felder deklariert, da nicht null ist (dies ist nicht standard, da die definition
der Primärschlüssel muss eindeutig sein und nicht null). Aber unten ist eine gute Praxis für
alle multi-column Primärschlüssel in jedem DBMS.
InformationsquelleAutor der Antwort Ken Reed
Seit der version 3.8.2 von SQLite, eine alternative zu expliziten NICHT-NULL-Spezifikationen ist die "OHNE ROWID" - Spezifikation: [Eins]
"OHNE ROWID" Tabellen haben potenzielle Effizienzvorteile, also eine weniger ausführliche alternative zu betrachten ist:
Beispielsweise an die sqlite3-Eingabeaufforderung ein:
sqlite> insert into t values(1,null,3);
Error: NOT NULL constraint failed: t.c2
InformationsquelleAutor der Antwort peak
In einer anderen Art und Weise, können Sie auch die zwei Spalte primary key
unique
und die auto-Inkrement - Schlüsselprimary
. Genau wie dieser: https://stackoverflow.com/a/6157337InformationsquelleAutor der Antwort ElonChan