【发布时间】:2015-11-30 05:45:48
【问题描述】:
我正在尝试在 SQLite 中创建一个递增列,以保持信息在导入的文本日志中存在的顺序并按项目分组。
CREATE TABLE log (
row INTEGER PRIMARY KEY AUTOINCREMENT,
item TEXT,
info TEXT
);
使用下表,我想相对于“item”自动递增“seq”。
CREATE TABLE test (
item TEXT,
seq INTEGER,
info TEXT,
CONSTRAINT pk_test PRIMARY KEY (item, seq)
);
我尝试了各种 INSERT 并不断地违反 UNIQUE/CONSTRAINT:
INSERT INTO test (item, seq, info)
SELECT item, (SELECT count(item) FROM test t WHERE l.item=t.item) + 1, info
FROM log l;
INSERT INTO test (item, seq, info)
SELECT item, (SELECT COALESCE(MAX(seq),0)+1 FROM test t WHERE l.item=t.item), info
FROM log l;
当我删除 CONSTRAINT 以查看结果时,“seq”总是以 1 结尾。
【问题讨论】: