之前已经提出了一个类似的问题,但查询是嵌入在java中的,对于那些会问这类问题的新手来说可能不太清楚。
我认为'rowid'列不是自动填充/自动递增。表,插入语句和错误代码如下:
CREATE TABLE T (rowid INTEGER PRIMARY KEY, c1 REAL, c2 REAL);
insert into T values (8,9);
我的数据库浏览器中的错误代码是:
table T has 3 columns but 2 values were supplied: insert into T values (1,2);
我有其他代码非常相似,但没有产生此错误。任何帮助是极大的赞赏!谢谢!
答案 0 :(得分:0)
这不是SQLite问题,您的数据库浏览器强制执行所有三列的值必须始终存在。
解决此问题的一个选择是为NULL
列插入rowid
。这应该强制SQLite分配下一个逻辑值,这也是你想要的行为:
INSERT INTO T values (NULL, 1, 2);