Quelle est la syntaxe pour spécifier une clé primaire sur plus de 1 colonne dans SQLITE ?
Réponses
Trop de publicités?Selon la documentation, il est
CREATE TABLE something (column1, column2, column3, PRIMARY KEY (column1, column2));
Oui. Mais rappelez-vous que cette clé primaire autoriser NULL
des valeurs dans les deux colonnes à plusieurs reprises.
Créer un tableau en tant que tel:
sqlite> CREATE TABLE something (
column1, column2, value, PRIMARY KEY (column1, column2));
Maintenant cela fonctionne sans aucun avertissement:
sqlite> insert into something (value) VALUES ('bla-bla');
sqlite> insert into something (value) VALUES ('bla-bla');
sqlite> select * from something;
NULL|NULL|bla-bla
NULL|NULL|bla-bla
Champs de clé primaire doit être déclarée non nulle (ce qui est non standard, comme la définition d'une clé primaire, c'est qu'il doit être unique et ne pas null). Mais ci-dessous est une bonne pratique pour tous les multi-colonnes de clés primaires dans tous les SGBD.
create table foo
(
fooint integer not null
,foobar string not null
,fooval real
,primary key (fooint, foobar)
)
;