day18-事务与连接池 2.事务介绍与mysql下事务操作

这么玩


 

真的变了吗?把cmd窗口关闭了看看。


 



 

就是固定的套路才行:start transaction->执行SQL->rollback;

执行每一条SQL之前都要start transaction才行,否则rollback是无效的。

无论是否写start transaction,执行一条SQL语句的时候都是有事务的。为什么这么说?


mysql数据库默认是自动事务。默认事务是指:写任何一条SQL语句它都有一个事务。

你写的任何一条SQL语句它的底层是start transaction  update commit。


 以前我们执行时也是有事务的,但是那是一条SQL语句一个事务。start transaction也是有事务的,相对于自动事务的优点是:可以控制N多条SQL语句都在一个事务里面。自动事务是做不了的。自动事务是写一个SQL就一个事务,写一个SQL就一个事务。


 而start transaction是开启了一个事务,下面写了N多条SQL语句都是在一个事务里面的。


start transaction是人为的手动操作,第二种是mysql本身是提供事务的,自动事务是默认开启的,你写的任何一条SQL语句都是有事务的。如果你把它的值改变了在操作的过程中你就必须手动地commit了。第二个操作一般是一条SQL的时候用。我这操作一条SQL就搞定了那就用自动事务。如果操作是由多条SQL完成那就用start transaction。

原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/6618158.html