回滚 rollback
為了保證在應用程序、數據庫或系統出現錯誤后,數據庫能夠被還原,以保證數據庫的完整性,所以需要進行回滾。
回滾(rollback)就是在事務提交之前將數據庫數據恢復到事務修改之前數據庫數據狀態。
例如,用戶A給用戶B轉賬,在數據庫中就需要給A與B的賬戶信息進行修改(update)操作,而這兩條sql語句必須都執行或者都不執行。 例如先執行用戶B的修改(update)語句,使用戶B的賬戶金額增加了1000,然后執行用戶A的update語句,使用戶A的賬戶金額減少了1000。 如果用戶A的賬戶金額大于1000,則交易順利進行,不存在任何問題,但是當用戶A的賬戶金額小于1000時,由于轉賬金額不允許大于賬戶金額,第二條sql語句語句就無法正確執行,此時,數據庫的狀態必須回到沒有執行B的update語句之前,需要進行回滾操作,回滾就是執行一遍相反的操作,此時再執行B的update金額減1000。
回滾與撤銷的區別:
回滾是指將數據庫的狀態恢復到執行事務之前的狀態,其中可能會使用UNDO日志進行回滾。
撤銷是一種記錄日志的方式,并不是主要服務于事務回滾,而是主要用于系統從故障中恢復。 例如,系統突然斷電,系統要根據UNDO日志對未完成的事務進行處理,保證數據庫的狀態為執行這些事務之前的狀態。
回滾的作用就是,當有一個SQL語句執行時,條件不符合要求,比如你要插入一個數據,但是插入的數據要有條件的,這時候你就可以用回滾,如果條件成功就COMMIT提交的意思,不然就ROLLBACK回滾,也就是說插入不成功
總結
以上是生活随笔為你收集整理的回滚 rollback的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019春第七周作业
- 下一篇: mysql中的locate,MySQL