这是数据库主键自增的固然性质所决定的,数据删除后,主键还是会继续增加的,即主键使用过一次将不会再次使用。
例如:这个表中有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包含两个参数,第一个参数表示起始值,第二个参数表示增量。
参考资料来源:百度百科-主键约束
如果你的数据库设置id字段的自增属性,那么插入的时候是可以不对这个字段赋值,或者赋值为0,或者赋值为空,数据库都能自动编号。 相反,如果你指定0值或者为空数据库没有自动编号,那肯定是没有设置自增属性。为什么mysql插入记录时还需要输入自增量
自增字段不用给它赋值,也不能给它赋值。
如果想要某个表的自增字段重新从1开始自动编号,使用 truncate your_table_name 语句。
---------------------------------------------------------------------------------
使用 TRUNCATE TABLE 删除所有行
若要删除表中的所有行,则 TRUNCATE TABLE 语句是一种快速、无日志记录的方法。该语句总是比不带条件的 DELETE 语句要快,因为 DELETE 语句要记录对每行的删除 *** 作,而 TRUNCATE TABLE 语句只记录整个数据页的释放。TRUNCATE TABLE 语句立即释放由该表的数据和索引占用的所有空间。所有索引的分发页也将释放。
与 DELETE 语句相同,使用 TRUNCATE TABLE 清空的表的定义,同其索引和其它相关的对象一起仍保留在数据库中。
以上就是关于mysql数据库主键设置了自增,但是,我把删除了一些数据,随后加的数据为什么会自增ID会接着已经删除了的全部的内容,包括:mysql数据库主键设置了自增,但是,我把删除了一些数据,随后加的数据为什么会自增ID会接着已经删除了的、为什么mysql插入记录时还需要输入自增量、怎样给数据库中的自增字段赋值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)