sqlite: multi-Spalte primary key mit auto increment-Spalte

Ich im Grunde wollen konvertieren einer Tabelle von mysql zu sqlite mit dem folgenden Schema:

create table items (
id integer auto_increment,
version integer default 0,
primary key (id, version)
);

Im wesentlichen, ich möchte die ID auf auto-increment, wenn ich stecken Sie nichts in die Tabelle, mit der VERSION, beginnend bei 0, aber immer noch erlauben, mehrere Elemente mit der gleichen ID als lange VERSION ist anders.

Ich versuche zu replizieren, dieses Verhalten mit Sqlite-aber ich kann nicht scheinen, um zur Erstellung der Tabelle arbeiten. Wie es scheint, man darf nur eine Spalte als autoincrement und Primärschlüssel. Wenn ich die ID der primary key ist, dann kann ich nicht die VERSION als Teil des Schlüssels. Allerdings, wenn ich eine multi-column key (ID, VERSION) , dann bekomme ich keine ID auf auto-increment.

Gibt es einen workaround oder vielleicht eine bessere Art und Weise der Gestaltung meiner Tabelle?


Dachte ich an folgende Lösung:

Tabelle 1:

create table items {
id integer primary autoincrement,
version integer}

Tabelle 2:

create table item_version {
id integer,
version integer,
primary key (id, version)
}

Wenn ich ein neues Element hinzuzufügen, füge ich es zu Artikel und ID-auto increment. jedoch, wenn ich jemals eine neue version der gleichen id, füge ich es zu item_version. im Grunde verwende ich item_version zu halten alles, aber Elemente, die nur zum generieren eindeutiger ids.

InformationsquelleAutor Dave | 2010-07-20
Schreibe einen Kommentar