数据库设置主键的时候用,为什么设置自动增长

数据库设置主键的时候用,为什么设置自动增长,第1张

保证程序的正确性,主键ID首先具有唯一性,设置自动增长在前台Insert的时候不需要传入ID的值,数据库自动根据最后一个ID值增加1保证数据库主键不重复而且调用更为高效。

假如说没有设置自动增长在insert一条记录的时候需要人为传递ID值。要保证唯一性必须要先获得上条记录的ID用select然后再加一然后在执行insert从效率方面降低程序的灵活性。

个人见解。

在原本的自动增长列上实现你的要求是不可能的,如果你非要这么做,我有个办法,就是把自动增长关掉,例子如下:

create table z (id int primary key(id))

go

create function f_id ()

returns int

as

begin

declare @id int,@i int,@count int,@maxid int

select @i=1

select @count=count() from z

select @maxid=max(id) from z

if @maxid is null

select @id=1

else

if @count=@maxid

select @id=@maxid+1

else

while @i<=@maxid

begin

if not exists (select from z where id=@i)

begin

select @id=@i

break

end

select @i=@i+1

end

return @id

end

go

insert into z values (dbof_id())

以上,希望对你有所帮助!

这个就是自增列的缺陷,自增列你是不可以改的,它的两个属性是,一个种子,一个自增量,种子是从第几个开始,自增量是每次增加多少个,你可以改的只有这两个值,不管你删除什么,下面的都是从最后一个开始增长,因为你删除了后,它的实际值在服务器端还是存在的,因为自增的你又不可用自己手动添加,所以这个是没有办法的!

显示的时候有个index的东西,那个可以按照顺序排列!

以上就是关于数据库设置主键的时候用,为什么设置自动增长全部的内容,包括:数据库设置主键的时候用,为什么设置自动增长、数据库自增列、数据库id自增等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/10150732.html

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

发表评论

登录后才能评论

评论列表(0条)

保存