sql子查詢嵌套規(guī)則 更新數(shù)據(jù)庫(kù)里的記錄時(shí),為什么要先判斷下數(shù)據(jù)是否存在再更新?
更新數(shù)據(jù)庫(kù)里的記錄時(shí),為什么要先判斷下數(shù)據(jù)是否存在再更新?根本原因是數(shù)據(jù)庫(kù)的并發(fā)機(jī)制,表現(xiàn)在各種鎖上。更新操作是一個(gè)互斥體,其他操作需要等待互斥體被釋放,然后才能獲得操作權(quán)限。選擇操作是一個(gè)共享鎖。當(dāng)
更新數(shù)據(jù)庫(kù)里的記錄時(shí),為什么要先判斷下數(shù)據(jù)是否存在再更新?
根本原因是數(shù)據(jù)庫(kù)的并發(fā)機(jī)制,表現(xiàn)在各種鎖上。更新操作是一個(gè)互斥體,其他操作需要等待互斥體被釋放,然后才能獲得操作權(quán)限。選擇操作是一個(gè)共享鎖。當(dāng)數(shù)據(jù)塊持有鎖時(shí),其他操作仍然不可寫,但可以讀取數(shù)據(jù)。
在“先檢查后更新”操作的應(yīng)用場(chǎng)景中,首先確定要更新的記錄是否存在。如果沒(méi)有返回錯(cuò)誤,將執(zhí)行更新操作。