MySQL通過set autocommit、start transaction、commit、rollback 等語句支持本地事務。
默認情況下,MySQL是自動提交的(autocommit)的,如果需要明確的commit和rollback來提交和回滾事務,那么就需要明確的事務控制命令來開始事務,這是和Oracle的事務管理明顯不同的地方。
session_1 | session_2 |
查看表 t11 的數據: select * from t11
|
查看表 t11 的數據: select * from t11
|
用start transaction 命令啟動事務,往表 t11 中插入一條數據,沒有 commit: start transaction; INSERT INTO t11 VALUES(125.0,125.0); |
|
查看表 t11 的數據,發現沒有插入的數據: select * from t11
|
|
執行提交: commit;
|
|
再次查詢 表 t11 , 可以查詢到session_1 插入的數據: select * from t11
|
|
下面這個事務是自動提交的: INSERT INTO t11 VALUES(200.0,200.0);
|
|
由於是自動提交的,現在可以立刻查詢到session_1 剛才插入的數據:
|