MySQL的事务控制(二)

1. MySQL 通过 SET AUTOCOMMIT,START TRANSACTION ,COMMIT ,ROLLBACK 等语句支持本地事务。

2. 语法格式:

START TRANSACTION  | BEGIN [WORK]

COMMIT [WORK]   [AND [NO] CHAIN]  [ [NO ] RELEASE ]

SET  AUTOCOMMIT = {0/1}

3. 默认情况下,MySQL是自动提交的(Autocommit)的

4. 如果需要通过明确的Commit 和 Rollback 来提交和回滚事务,那么就需要通过明确的事务控制命令来开始事务。

   注意:这和ORACLE的事务管理有明细区别。

5. START  TRANSACTION  或 BEGIN  语句可以开始一项新的事务。

6. COMMIT 和ROLLBACK 用来提交或者回滚事务。

7. CHAIN 和 RELEASE 子句分别用来定义在事务提交或者回滚之后的操作

    CHAIN会立即启动一个新事务,并且和刚才的事务具有相同的隔离级别

    RELEASE 则会断开和客户端的连接。

8. SET AUTOCOMMIT 可以修改当前连接的提交方式,如果设置了SET AUTOCOMMIT=0 ,则设置之后的所有事务都需要通过明确的命令进行提交或者回滚。

注意:

(1) 如果只是对某些语句需要进行事务控制,则使用START TRANSACTION 语句开始一个事务比较方便,这样事务结束之后可以自动回到自动提交的方式。

(2) 如果希望所有的事务都不是自动提交的,那么通过修改AUTOCOMMIT 来控制事务比较方便,这样不用再每个事务开始的时候再执行STRAT  TRANSACTION 语句

示例:

mysql >  start transaction;

mysql > insert into actor(actor_id,first_name,last_name) values(12,'Tom','lisa');

mysql> commit;  (完成提交)   或者用 commit and chain (完成本次提交,并开启一个新的事务)

猜你喜欢

转载自blog.csdn.net/HNDX2018/article/details/82997167