MySQL学习笔记:set autocommit=0和start transaction

  在MySQL中,接触事务的例子比较少,今晚在一个简单的存储过程中,循环插入50000条id数据的时候,得知必须开事务,如果逐提交数据,将会导致速度异常的慢。

  SET autocommit = 0;   指事务非自动提交,执行以后,每个SQL语句或语句块所在的事务都需要显示“commit”才能提交事务;

1、不管autocommit 是1还是0 
  START TRANSACTION 后,只有当commit数据才会生效,ROLLBACK后就会回滚。

2、当autocommit 为 0 时
  不管有没有START TRANSACTION。
  只有当commit数据才会生效,ROLLBACK后就会回滚。

3、如果autocommit 为1 ,并且没有START TRANSACTION 。
  调用ROLLBACK是没有用的。即便设置了SAVEPOINT。


END 2018-05-29 00:26:53

猜你喜欢

转载自www.cnblogs.com/hider/p/9103051.html