自增长字段是会一直累加上去的,不会因为记录删除而填回原来的记录,因为数据库要保证记录的唯一性,如果你要从1开始,你可以删除自增长字段,再重新加入,则会自己从1开始,也可以用命令进行重新编号
数据库自动编号就是这样的,不会因为你删除数据而回滚编号,如果你想实现这个功能的话,就只能先读取最大id,然后存入最大id+1.
SQLite中,一个自增长字段定义为INTEGER PRIMARY KEY AUTOINCREMENT,那么在插入一个新数据时,只需要将这个字段的值指定为NULL,即可由引擎自动设定其值,引擎会设定为最大的rowid+1。如果表为空,那麼将会插入1。
比如,有一张表ID为自增:
CREATE TABLE Product
(
ID INTEGER PRIMARY KEY AUTOINCREMENT,
Name NVARCHAR(100) NOT NULL
)
那麼,插入的SQL就是:
INSERT INTO Product VALUES(NULL, '产品名称')
GO
(1)当主键设置为自动增长时候,主键数据类型必须是integer类型,不能使long类型。
(2)插入的时候,如果罗列的列中没有自动增长列,自动增长列也是可实现自动增长的。
(3)插入的时候,如果罗列的列中有自动增长列,那么设置为null,可以实现自动增长。
自动累加的就是这样,需要保证数据的唯一性,而唯一性就是用ID标识的。
就是这样的啊!自动累加吗!