'rowid'列不是自动增量

时间:2016-11-23 04:58:02

标签: sqlite

之前已经提出了一个类似的问题,但查询是嵌入在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);

我有其他代码非常相似,但没有产生此错误。任何帮助是极大的赞赏!谢谢!

1 个答案:

答案 0 :(得分:0)

这不是SQLite问题,您的数据库浏览器强制执行所有三列的值必须始终存在。

解决此问题的一个选择是为NULL列插入rowid。这应该强制SQLite分配下一个逻辑值,这也是你想要的行为:

INSERT INTO T values (NULL, 1, 2);