MySQL的rollback 事務回滾

2021-08-22 14:48:29 字數 872 閱讀 8372

mysql version:5.7

首先:事務回滾只用於dml,不適用於ddl。對於ddl的回滾,以後有時間再說。

關於rollback和commit,mysql的文件已經說的很詳細了,選擇其中乙個簡單的例子再絮叨下:

mysql> create table customer (a int, b char (20), index (a));

query ok, 0 rows affected (0.00 sec)

mysql> -- do a transaction with autocommit turned on.

mysql> start transaction;

query ok, 0 rows affected (0.00 sec)

mysql> insert into customer values (10, 'heikki');

query ok, 1 row affected (0.00 sec)

mysql> commit;

開啟事務,可以用上面例子中的start transaction;或者簡單的begin;;

提交事務,即確認dml的改動,使用commit;

回滾事務,即要回退掉之前的操作,使用rollback;

另外:如果不提交也不回滾,執行的dml只是在當前會話有效,在其他會話是不生效的(不信你再重新開啟乙個連線視窗看看),所以begin一開始,要麼以commit結束,要麼以rollback結束。

在執行較大量的update或delete時,提醒自己一定要用事務事務啊啊!!

參考:

mysql官方文件:

佇列Rollback的設計

有乙個佇列包含了n個block,每個block是佇列中的乙個元素。block很大,乙個block中可以容納m個item m 1 這個佇列的基本使用模式就是 不斷的有item過來,往block裡面填充,一旦block滿,就建立乙個新的block,後繼item都填往新block。rollback的定義 ...

oracle中rollback的使用

rollback使用 sql create table tbl name varchar2 10 table created.sql insert into tbl values zhiqiao 1 row created.sql select from tbl name zhiqiao sql d...

rollback與flashback的區別

1 flashback 閃回 實現閃回資料庫的基礎是閃回日誌,配置了閃回資料庫後會自動建立閃回日誌,只要資料庫裡資料發生變化,就會將資料被修改前舊址放入閃回日誌。閃回主要用於出現邏輯錯誤時比如誤刪除表,誤刪除使用者等,快速完成對業務資料的恢復。flashback具體來說有 4種常用的操作,這幾種操作...