2017-03-10 27 views
0

我有一个C#项目,它从MySQL数据库表中获取数据并更新列(StatusID = 5)。它使用StatusID = 4搜索row选择命令有时获得相同的行

让我告诉你的流程:

SELECT * FROM ACCOUNTS WHERE STATUSID = 4 
// After that I assign an object with the data i got. 
UPDATE ACCOUNTS SET STATUSID = 5 WHERE ACCOUNTNAME = '#ACCOUNTNAME' 

这个流程在几毫秒,但问题是,这个项目是在同一时间运行在700电脑,所以有时达到码的同一部分在同一时间,所以1-5个人电脑会得到相同的帐户。所以我需要一个像trigger或使我Select一个帐户时,它需要几秒钟,如果没有改变再次被选中类似的东西。

感谢您的关注。

+2

看起来你需要交易 – bradbury9

+0

@ bradbury9,不确定这种情况下的交易意味着什么! – GameHackerPM

+0

你应该阅读[transactions](https://dev.mysql.com/doc/refman/5.7/en/commit.html)。另外请确保使用'select ... for update'。但首先阅读有关交易。 – Solarflare

回答

0

这是好吗? 这不是你的问题的答案,但如果你不能及时更新你知道的时候,已经改变了

UPDATE ACCOUNTS SET STATUSID = 5 WHERE ACCOUNTNAME = '#ACCOUNTNAME' AND STATUSID = 4 
+0

感谢您的帮助,但这不是一个解决方案! :) – GameHackerPM