mysql数据库主键设置了自增,但是,我把删除了一些数据,随后加的数据为什么会自增ID会接着已经删除了的

mysql数据库主键设置了自增,但是,我把删除了一些数据,随后加的数据为什么会自增ID会接着已经删除了的,第1张

这是数据库主键自增的固然性质所决定的,数据删除后,主键还是会继续增加的,即主键使用过一次将不会再次使用。

例如:这个表中有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包含两个参数,第一个参数表示起始值,第二个参数表示增量。

参考资料来源:百度百科-主键约束

如果希望在每次插入新记录时,自动地创建主键字段的值。可以在表中创建一个 auto-increment 字段。MySQL 使用 AUTO_INCREMENT 关键字来执行 auto-increment 任务。默认地AUTO_INCREMENT 的开始值是 1,每条新记录递增 1。主键又称主关键字,主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。

如何在MySQL&Oracle下创建自动递增字段

在MySQL下创建自动递增字段

create table article   //先创建一个表

(       

id int primary key auto_increment   //设置该字段为自动递增字段

title varchar( )

)

insert into article values (null a )     //向数据库中插入数据

select * from article   结果如下

Id

Title

a

insert into article values (null b )

insert into article values (null c )

insert into article  (title)  values ( d )

select * from article   结果如下

Id

Title

a

b

c

d

但是oracle没有这样的功能 但是通过触发器(trigger)和序列(sequence)可以实现

假设关键字段为id 建一个序列 代码为

create sequence seq_test_ids minvalue maxvalue start with increment by nocache order <! [if !supportLineBreakNewLine] ><! [endif] >

建解发器代码为

lishixinzhi/Article/program/Oracle/201311/18903


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8559138.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存