樂觀鎖-版本號
實現策略:提交版本號必須大於數據庫表記錄的版本號才能執行
舉例:比如下面是一張表,表字段最後加一個版本號
![樂觀鎖-版本號實現方式](http://p2.ttnews.xyz/loading.gif)
然後,兩個線程,比如線程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 , 發現執行不了了。失敗。
閱讀更多 全棧獨立開發者 的文章