最新回答 / 楓荇
您好!@lancoliu?case語句是保證不了原子性的。但可以使用case語句來測試執(zhí)行值的分支,最終來確定要更新的值。update 語句是執(zhí)行在事務之中,不管是自動提交還是手動提交,都存在一個事務,那么在這個事務中是滿足原子操作的。case語句和原子性沒有任何關系,并不能保證原子性,只是用在分支測試而已,課程中的案例是用在update 語句中,簡單理解就是數(shù)據(jù)庫事務中的if else代碼判斷而已。
2019-04-29
講師回答 / 楓荇
@qq_慕雪2491004這個是寫的一個bug,哈哈,不過問題不大,缺少自動化測試代碼錄制課程時沒有發(fā)現(xiàn),下面是同學的bug解決方法,請移步參考:http://idcbgp.cn/qadetail/303903
2019-04-20
講師回答 / 楓荇
嗯,是的,課程中的main方法只是演示,并不是生成一個真實的紅包序列,但同樣的代碼我在mac下也不會出現(xiàn)生成同樣的數(shù)字的現(xiàn)象,這個問題還是需要找到原因的。你的代碼實際上是生成了一個真實的序列,是沒有問題的。
2019-04-15
講師回答 / 楓荇
@我們啲承諾?這個是寫的一個bug,哈哈,不過問題不大,缺少自動化測試代碼錄制課程時沒有發(fā)現(xiàn),下面是同學的bug解決方法,可以參考http://idcbgp.cn/qadetail/303903
2019-04-02
講師回答 / 楓荇
?您好!這個問題是因為無法訪問谷歌地址的原因,可以通過手動下載GitHub上的代碼來解決:cd /path/to/$GOPATH/src/golang.org/x/?git clone?https://github.com/golang/oauth2.git同樣的方法適用于golang.org/x/中所有的包,這些包都可以在https://github.com/golang倉庫中找到。
2019-03-27
講師回答 / 楓荇
@Q646448149?您好!這個案例中關鍵的邏輯是對數(shù)據(jù)版本字段的維護和使用數(shù)據(jù)版本字段進行CAS。第一個問題:通過在where條件中添加數(shù)據(jù)版本字段的驗證,來確定要更新的數(shù)據(jù)是最新的才能被修改;如果已經(jīng)被修改,數(shù)據(jù)版本就會被更新,那么當前更新就要被更新失敗。第二個問題:這種方案不通用,但在很多場景中來代替鎖,簡單說就是避免使用鎖來優(yōu)化性能。
2019-03-03