关于事务与锁的疑问,求解答

linsx1987 2011-10-28 03:23:05
现在有这种情况

set @uid=(select MAX(m_id) from Members)

然后再把这个@uid加上前缀,再插入到members表里面去

相当于:我新增一条数据,会自动生成一个昵称,昵称是由自增id以及相对应的前缀构成的。

问题来了,考虑到并发性的问题,如果两个人同时增加,
那max(m_id)得到的就是一样的数据了,势必会出现问题的


查了资料,网上有人说用事务可以解决,请问有人知道如何解决吗?

或者说该用什么方法解决上面的情况呢??求解答,谢谢
...全文
62 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
szjarvis 2011-10-28
  • 打赏
  • 举报
回复
期待解答。
linsx1987 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 deepmist 的回复:]
相当于:我新增一条数据,会自动生成一个昵称,昵称是由自增id以及相对应的前缀构成的。
用触发器比较好一点,
或者在插入数据的时候再去取最大的id
[/Quote]

用insert into select 应该可以解决问题,但是我就是想弄清楚“用事务可以解决”这个说法,想更进一步了了解下
deepmist 2011-10-28
  • 打赏
  • 举报
回复
相当于:我新增一条数据,会自动生成一个昵称,昵称是由自增id以及相对应的前缀构成的。
用触发器比较好一点,
或者在插入数据的时候再去取最大的id

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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