2 yuchensuifeng yuchensuifeng 于 2015.06.06 01:48 提问

存储过程怎么让代码块同步执行

问题是这样的:一个表,传入参数(多个)
判断
如果表中有这个数据(有一个或者多个参数标识这条记录唯一),更新这条数据
如果表中不存在这条数据,新增一条。
现在把这个逻辑写到存储过程中了,会出现多个线程同时调用这个存储过程,
在查询、没插入之前,有多个线程得到都是数据库没有记录的,导致插入多条数据。
怎么把这个过程变成原子的,锁定这块代码。
锁表不太科学,锁行,因为插入之前,数据是不存在的,也锁不住,求帮忙,非常感谢!
这个问题应该不是事务吧?事务是代码可能执行一半出错,导致一半执行,
一半没有执行,所以需要回滚,我这个是代码执行不会出错的,只是数据库进去的数据
会不对。

1个回答

guwei4037
guwei4037   Ds   Rxr 2015.06.06 06:06
yuchensuifeng
yuchensuifeng 这段代码执行出错要回滚,代码执行肯定是正确的,错误的是数据
接近 3 年之前 回复
yuchensuifeng
yuchensuifeng 你没看明白我的问题,我所的是这块代码一次只能被一个链接执行,而不
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!