0
我有一個與數據庫表的工作原理是 Id, state, procdate, result
提交更改與鎖定保持
當有需要處理一些數據的應用程序,應用程序設置狀態PROCESSING
。處理後的處理結果被設置爲result
列,狀態變爲STANDBY
。
要做的第一個設置爲PROCESSING
我開始交易,做select for update
,然後更新狀態和procdate。 然後我做了工作,並使用selection for update
更新狀態和結果。
處理可能需要長達5分鐘。需要進行狀態切換以查看有多少行正在進行。問題是可能會發生另一個處理請求,並且必須等到第一次處理結束。 所以我想保持行鎖定。如果我在提交處理狀態之後將選擇更新爲鎖定,則第二個請求可能會攔截並鎖定該行。
那麼我怎樣才能保持鎖定並提交更改?
你不能那樣做。也許你需要重新考慮你的設計? – OldProgrammer
很傷心。也許我需要。但我不知道如何。任何書籍或文章或會議視頻? – fantomasdnb