数据库记录新增或是修改的方案!

wumylove1234 2007-04-03 09:28:33
库存处理中一个很复杂的处理,要在一个事务中同时新增多条库存记录.那么在并发处理时,有可能出现冲突,即:第一个事务判断出应该增加一条新的记录,而第二个事务也认为应该增加一个新的记录.则肯定有一方将插入失败.

如果是更新的话可以使用更新锁,但是新增怎么办呢?难道要锁定整个表吗?
...全文
259 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wumylove1234 2007-04-05
  • 打赏
  • 举报
回复
大概是这个意思吧.不过如果是售票的话倒是可以用更新锁.
ismezy2002 2007-04-04
  • 打赏
  • 举报
回复
那就不是主键冲突的问题了,而是二个事务处理了同一笔业务?

就好像售票一样,2个窗口出售同一张票?
wumylove1234 2007-04-04
  • 打赏
  • 举报
回复
晕了.不是自增列能解决的.你总不能让某个货品的库存记录有两条吧?
hertcloud 2007-04-04
  • 打赏
  • 举报
回复
ID冲突?
使用自增长ID
或者使用 每次 加入都 set @myID = (select max(id)+1 from yourTB)
ismezy2002 2007-04-04
  • 打赏
  • 举报
回复
Oracle用序列解决

SQL Server用自增列
wumylove1234 2007-04-04
  • 打赏
  • 举报
回复
事务如何判断?如果两个事务并发呢?

哪个高手来给我个确定的答复呗.如果像更新这种冲突可以使用更新锁,如果插入的话在我看来就不能锁定了.如果并发冲突,就直接报错了吧.然后做冲突处理.是这个样子的吧.
njkanewang 2007-04-03
  • 打赏
  • 举报
回复
加一个判断的事务阿,验证这条记录是否已经存在了
wumylove1234 2007-04-03
  • 打赏
  • 举报
回复
呵呵.不好意思啊.是担心主键冲突.
ismezy2002 2007-04-03
  • 打赏
  • 举报
回复
没说出具体问题啊,是担心主键冲突?或者担心2个事务是同一条记录?

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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