这是数据库主键自增的固然性质所决定的,数据删除后,主键还是会继续增加的,即主键使用过一次将不会再次使用。
例如:这个表中有10条数据,主键为1-10不间断的数字,那删除第十条数据,继续插入的话,id则会变成11,而不是10。通俗的说就是主键使用过一次将不会再次使用。
每次插入则不需要为主键设置参数,数据库会根据设置的递增条件,自动给出主键值。则第一次插入后主键为1,第二次为2,依次递增。
扩展资料:
Mysql、SqlServer主键自动增长的设置方法:
1、在mysql中把主键定义为自动增长标识符类型
如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如:
createtablecustomers(idintauto_incrementprimarykeynotnull,namevarchar(15))insertintocustomers(name)values("name1"),("name2")
2、在MSSQLServer中,如果把表的主键设为identity类型,数据库就会自动为主键赋值。例如:
createtablecustomers(idintidentity(1,1)primarykeynotnull,namevarchar(15))insertintocustomers(name)values("name1"),("name2")identity包含两个参数,第一个参数表示起始值,第二个参数表示增量。
参考资料来源:百度百科-主键约束
不会,自增是独立于数据表存在的,你可以理解为它是一个单独的序列函数,每次insert的时候去这个函数取一下当前的值。该函数只增不减,永远加1。所以,如果你删除了数据表中的一行记录,那么这个id就再也不存在了。
如果你这时候想要填充这个id也不是没办法。你需要先停止id的自增 *** 作,然后手工insert带所需id的数据,然后再启动自增。
你数据库定义那张表的时候 字段id肯定是自增长并且是主键, 一般都会这么做那么你要把原来的表删除了, 然后用sql脚本重新定义, 定义的时候id不要定义为自增长, 但是这样的话 ID如果重复了。 你以后查询的 时候 有可能会查出重复的记录。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)