2017-03-10 31 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