我正在尝试定义一个两行主键,这样 第二列为每个人自动递增 第一行的值。
例如我们会:
X Y
A 1
A 2
A 3
A 4
A 5
B 1
B 2
B 3
C 1
D 1
E 1
E 2
我想做一个:
create table t (x text, y integer autoincrement) primary key (x, y);
但是我从 SQLite 得到一个错误,说我在“自动增量”附近有一个错误。我能做什么? (只要我能让它工作,即使是整数值 x 也可以)。
然后我想通过以下方式获得上述值:
insert into t (x) values ('A');
insert into t (x) values ('A');
insert into t (x) values ('A');
insert into t (x) values ('A');
insert into t (x) values ('A');
insert into t (x) values ('B');
insert into t (x) values ('B');
insert into t (x) values ('B');
insert into t (x) values ('C');
insert into t (x) values ('D');
insert into t (x) values ('E');
insert into t (x) values ('E');
谢谢,
贾森·波西特
最佳答案
如果你的表中有相同的数字两次或更多次,你就不能自动递增。我知道你想做什么,但它不能用自动增量来完成。
但是你可以这样
create table t (x text not null, y integer not null) primary key (x, y);
另见:sqlite: multi-column primary key with an auto increment column
关于SQLite:双主键和自动增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16200202/