sqlite中的自动增量问题

sqlite中的自动增量问题,sqlite,Sqlite,在linux中,在命令行(sqlite3)上,我使用以下版本的Sqlite: SQLite version 3.7.6.3 在sqlite教程()中,我阅读了以下语句: On an INSERT, if the ROWID or INTEGER PRIMARY KEY column is not explicitly given a value, then it will be filled automatically with an unused integer, usually one

在linux中,在命令行(sqlite3)上,我使用以下版本的Sqlite:

SQLite version 3.7.6.3
在sqlite教程()中,我阅读了以下语句:

On an INSERT, if the ROWID or INTEGER PRIMARY KEY column is not explicitly 
given a value, then it will be filled automatically with an unused integer,
usually one more than the largest ROWID currently in use. 
我有下表(.schema地址):

现在,如果我像上面提到的那样插入以下行(id没有值),它将不起作用:

insert into addresses (ipaddr, locked, date, quater, count) values
('0.0.0.0', 0, '2016/12/13', 0, 1);
我收到了错误信息

Error: addresses.id may not be NULL
但是教程说我可以这样做


我做错了什么?

整数主键
,而不是
整数主键
非空
整数主键
是冗余的

它是
整数主键
,而不是
整数主键
notnull
integer主键是冗余的

非常感谢。但是int和integer之间有什么区别呢?检查描述INT和INTEGER之间差异的链接。注意该页上的评论,对评论投21票。当涉及到自动递增时,列必须是数据类型INTEGER,即使命名INT与INTEGER具有相同的亲和力。
INTEGER主键
使用ROWID别名,并且可以自动填充
int主键
是具有整数关联性的主键,但它不使用ROWID别名,也不获取自动填充属性。非常感谢。但是int和integer之间有什么区别呢?检查描述INT和INTEGER之间差异的链接。注意该页上的评论,对评论投21票。当涉及到自动递增时,列必须是数据类型INTEGER,即使命名INT与INTEGER具有相同的亲和力。
INTEGER主键
使用ROWID别名,并且可以自动填充
int主键
是具有整数关联性的主键,但它不使用ROWID别名,也不获取自动填充属性。
Error: addresses.id may not be NULL