Je veux essentiellement convertir une table de MySQL à SQLite le schéma suivant:sqlite: clé primaire multi-colonne avec une colonne d'incrémentation automatique
create table items (
id integer auto_increment,
version integer default 0,
primary key (id, version)
);
Essentiellement, je veux ID à incrémentation automatique chaque fois que j'insérer quoi que ce soit dans la table, avec la VERSION commençant à 0, mais permettent toujours plusieurs articles avec le même ID tant que la VERSION est différente.
J'essaye de reproduire ce comportement avec Sqlite cependant, je ne peux pas sembler faire fonctionner la création de table. Il semble que vous ne pouvez utiliser qu'une seule colonne comme auto-incrémentation et que ce soit la clé primaire. Si je mets l'ID comme clé primaire, je ne peux pas utiliser VERSION comme partie de la clé. Cependant, si je crée une clé à plusieurs colonnes (ID, VERSION), je ne peux pas obtenir l'ID en incrémentation automatique.
Y at-il une solution de contournement ou peut-être une meilleure façon de concevoir ma table?
Je pensais à la solution suivante:
Tableau 1:
create table items {
id integer primary autoincrement,
version integer}
Tableau 2:
create table item_version {
id integer,
version integer,
primary key (id, version)
}
Quand j'ajouter un nouvel élément, j'ajouter à articles et ont l'incrément automatique d'identification. cependant, si j'ai déjà une nouvelle version du même identifiant, je l'ajoute à item_version. Fondamentalement, j'utilise item_version pour contenir tout sauf des éléments pour simplement générer des identifiants uniques.
Ils peuvent si vous le spécifiez. 'CREATE TABLE MyTable (Col1 INTEGER PRIMARY KEY AUTOINCREMENT)' par exemple – MPelletier
Pas si vous avez plusieurs clés primaires comme dans ce cas. – Sam