菜鸟系列---主键问题

JzeroBiao 2006-03-14 04:38:30
我想问一下用自增列作为主键好,还是用max(id)+1作为主键好
1.那个更安全一些,一般用那个比较多
2.为了方便管理,我想用max(id)+1作为主键,有什么方法可以避免重复ID啊
...全文
163 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
aniude 2006-03-14
  • 打赏
  • 举报
回复
我想问一下用自增列作为主键好,还是用max(id)+1作为主键好
1.那个更安全一些,一般用那个比较多
2.为了方便管理,我想用max(id)+1作为主键,有什么方法可以避免重复ID啊
当然是自增好了,这样的序列才是唯一的,
max(id)+1可能id会存在id重复的可能,好好想想把
wgsasd311 2006-03-14
  • 打赏
  • 举报
回复
用max(id)+1会不会出现重复id,如何避免~

====>可以用触发器实现
create trigger tr_insert on 你的表
instead of insert -- 注意触发器类型
as
if @@rowcount = 0 return
select * into # from inserted
declare @pkid int
select @pkid=isnull(max(id),0) from 你的表
update # set id=@pkid, @pkid=@pkid+1
insert 你的表 select * from #
JzeroBiao 2006-03-14
  • 打赏
  • 举报
回复
用max(id)+1会不会出现重复id,如何避免~
wgsasd311 2006-03-14
  • 打赏
  • 举报
回复
我想问一下用自增列作为主键好,还是用max(id)+1作为主键好
1.那个更安全一些,一般用那个比较多
自增用得多,安全问题不好说,要具体看写程序人
2.为了方便管理,我想用max(id)+1作为主键,有什么方法可以避免重复ID啊
在插入或更新id列时,不要放入长事物中,
viptiger 2006-03-14
  • 打赏
  • 举报
回复
用自增列作为主键好,max(id)+1得方法会降低效率
lsqkeke 2006-03-14
  • 打赏
  • 举报
回复
自增列作为主键好,还是用max(id)+1
--------------------
有什么区别吗? 原理都一样!

如果要的话,直接用自增列作为主键,还不用另写代码去维护!
但用这个作为主键,就必须控制好能修改自增值的情况发生,这就关系到identity列的问题了

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧