2009-12-24 65 views
0

其實,問題是這樣的: -
我有一張桌子,說付款。我提供了幾個用於搜索,查看和編輯記錄的GUI。現在,如果用戶正在嘗試 編輯記錄 執行一些特定的操作,這需要1分鐘來處理。然後另一個用戶不應該能夠在同一記錄上執行該特定操作。什麼應該是鎖定表中記錄的正確/更好的方法?

Traditional approach of doing this is, have a column in the table, say _isLocked_. and whenever user is performing that action it should change the value of said column to, say, true. Once the process is completed it should reset the value of the column. Also, just before someone tries to perform the action, it should check the value of the column and notifies the user if the record is locked.

什麼其他的接洽在那裏做?

回答

2

SELECT FOR UPDATE就是這樣。我們通過使用這個來獲得這種行爲。

2

由於Vinegar saidSELECT FOR UPDATE - 接受他的答案,不是我:)

務必知道用戶真正想要編輯的行,當他/她做。根據您的應用程序,您可以打開一個單獨的窗口,在該窗口中用戶進行修改,然後確認/取消,以便您可以執行COMMIT/ROLLBACK。

並確保試圖更改同一行的另一個用戶不會面對凍結的應用程序,並且必須等待釋放該鎖。

相關問題