如何获取数据库新插入记录的ID?

这个是老问题了吧,我需要一个完美的解决方案。ID是数据表的自动更新字段,从1开始编号每次加1,是数据表的主键。数据库可以是Access、MSSQL、MYSQL的平台可以是... 这个是老问题了吧,我需要一个完美的解决方案。

ID是数据表的自动更新字段,从1开始编号每次加1,是数据表的主键。

数据库可以是Access、MSSQL、MYSQL的
平台可以是PHP、.net的,但必须有用SQL语言。
平台和数据库符合一种就行了。

需要考虑 并发性、数据库更新延时、复杂的数据更新删除增加等变动。
给网址也可以,但必须有用。

谢谢大家了。
1楼貌似并发性有问题
2楼和3楼,不能解决数据库更新延时和并发性,是没用的。
4楼,能给个例子吗?解决了会加分的。
展开
 我来答
WHITE_WIN
2008-09-02 · TA获得超过6111个赞
知道大有可为答主
回答量:3759
采纳率:50%
帮助的人:1926万
展开全部
begin transaction
insert into tablename values(...)
select newid=max(id) from tablename
commit ransaction

这样就可以了,但是一般是在前台连接中加入事务处理,实在不行,才这样作.
百度网友fa0ff2c
2008-09-01 · TA获得超过1.2万个赞
知道大有可为答主
回答量:8033
采纳率:33%
帮助的人:4071万
展开全部
SQL:SELECT @@IDENTITY
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灵猫的羽毛
2008-09-02 · TA获得超过167个赞
知道小有建树答主
回答量:369
采纳率:0%
帮助的人:253万
展开全部
既然ID是自动增加的,那
select top 1 id from 表名 order by id desc
就可以啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shaoshuai_bd
2008-09-03 · TA获得超过669个赞
知道小有建树答主
回答量:388
采纳率:0%
帮助的人:464万
展开全部
三楼要加锁,不然并发也会有问题。

建议:插入空记录,加上时间戳,根据时间戳update记录,取得ID号。

white_win的方法很好,用事务处理。

commit transaction,少了个t.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式