為什么要先判斷下數據是否存在再更新?
單獨執行更新是沒有問題的。
問題是,更新一般會加鎖,防止并發更新,所以,這個時候,如果你數據不存在的話,情況就有點復雜,可能是加鎖失敗,然后要么沒鎖上,要么鎖一片,看你sql怎么寫,導致業務邏輯錯誤,更新了不該更新的數據。
一般實際更新先開事務,然后在事務里面分兩步,select xxx for update來加鎖,一般是行鎖,然后執行實際的update,最后根據執行情況提交事務或者回滾事務。
單獨update執行是沒有問題的。
為什么要先判斷下數據是否存在再更新?
單獨執行更新是沒有問題的。
問題是,更新一般會加鎖,防止并發更新,所以,這個時候,如果你數據不存在的話,情況就有點復雜,可能是加鎖失敗,然后要么沒鎖上,要么鎖一片,看你sql怎么寫,導致業務邏輯錯誤,更新了不該更新的數據。
一般實際更新先開事務,然后在事務里面分兩步,select xxx for update來加鎖,一般是行鎖,然后執行實際的update,最后根據執行情況提交事務或者回滾事務。
單獨update執行是沒有問題的。