樂觀鎖-版本號實現方式

樂觀鎖-版本號

實現策略:提交版本號必須大於數據庫表記錄的版本號才能執行

舉例:比如下面是一張表,表字段最後加一個版本號

樂觀鎖-版本號實現方式

然後,兩個線程,比如線程A,線程B,同時取id=1得記錄。這個時候兩個線程獲取的版本號都是1。

接下來,線程A修改了name和version自增,提交事務。這個時候update的語句應該如下:

update 表 set name='全棧開發' ,version=version+1 where id=1 and version <2 (sql應該這樣寫把,不記得了^^) ,執行成功 後數據庫表的id=1這條記錄versoin=2了。

在接下來,由於線程B這傢伙動作比較慢,等線程A已經提交了,然後執行Update

update 表 set name='全棧開發' ,version=version+1 where id=1 and version <2 , 發現執行不了了。失敗。


分享到:


相關文章: