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種常用的操作,這幾種操作...