根据SQLite文档/ FAQ,声明INTEGER PRIMARY KEY
的列将自动获得+1列的最高值(如果省略)。
使用SQLite版本3.22.0 2018-01-22 18:45:57
按如下方式创建表:
CREATE TABLE test (
demo_id INTEGER PRIMARY KEY NOT NULL,
ttt VARCHAR(40) NOT NULL,
basic VARCHAR(25) NOT NULL,
name VARCHAR(255) NOT NULL,
UNIQUE(ttt, basic) ON CONFLICT ROLLBACK
) WITHOUT ROWID;
然后像这样插入:
INSERT INTO test (ttt, basic, name) VALUES ('foo', 'bar', 'This is
a test');
给出:
Error: NOT NULL constraint failed: test.demo_id
sqlite>
当期望创建一个demo_id值为1的记录时。即使表已经包含值,它也会在没有明确指定具有相同错误的id的情况下插入行失败。
我做错了什么?