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 刚才插入的数据: |