向数据库里插入新的数据id号为什么不是从头算起??

2024-12-24 23:24:39
推荐回答(5个)
回答1:

自增长字段是会一直累加上去的,不会因为记录删除而填回原来的记录,因为数据库要保证记录的唯一性,如果你要从1开始,你可以删除自增长字段,再重新加入,则会自己从1开始,也可以用命令进行重新编号

回答2:

数据库自动编号就是这样的,不会因为你删除数据而回滚编号,如果你想实现这个功能的话,就只能先读取最大id,然后存入最大id+1.

回答3:

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,可以实现自动增长。

回答4:

自动累加的就是这样,需要保证数据的唯一性,而唯一性就是用ID标识的。

回答5:

就是这样的啊!自动累加吗!