Sqlite primary key on multiple columns Sqlite primary key on multiple columns sqlite sqlite

Sqlite primary key on multiple columns


According to the documentation, it's

CREATE TABLE something (  column1,   column2,   column3,   PRIMARY KEY (column1, column2));


CREATE TABLE something (  column1 INTEGER NOT NULL,  column2 INTEGER NOT NULL,  value,  PRIMARY KEY ( column1, column2));


Yes. But remember that such primary key allow NULL values in both columns multiple times.

Create a table as such:

    sqlite> CREATE TABLE something (column1, column2, value, PRIMARY KEY (column1, column2));

Now this works without any warning:

sqlite> insert into something (value) VALUES ('bla-bla');sqlite> insert into something (value) VALUES ('bla-bla');sqlite> select * from something;NULL|NULL|bla-blaNULL|NULL|bla-bla