我在C#中有一个项目,它从MySQL数据库表中获取数据并使用(StatusID = 5
)更新列。它会搜索row
StatusID = 4
。
让我告诉你流程:
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台PC,所以它有时会同时到达同一部分代码,所以会发生什么事情就是1-5台PC得到了相同的帐户。所以我需要像trigger
这样的东西,或者在我Select
帐户时制作,如果没有更改则需要几秒钟再次选择。
感谢您的关注。
答案 0 :(得分:1)
您需要在代码中进行交易。
您可以在SQL代码或c#代码中启动事务,两者都做类似的事情。在您的情况下,您需要一个c#transaction https://msdn.microsoft.com/en-us/library/86773566(v=vs.110).aspx
话虽如此,您还应该检查隔离级别,以确保行为是所需的https://msdn.microsoft.com/en-us/library/system.data.isolationlevel(v=vs.110).aspx
答案 1 :(得分:0)
这可以吗? 这不是你的问题的答案,但如果你不能更新,你知道它已经被更改
x