mysql的事务的自动提交

来源:互联网 发布:java jdk中文文档 编辑:程序博客网 时间:2024/06/08 17:59

      mysql事务的自动提交

    由于技术比较菜,在上一篇关于数据库储存引擎的学习中发现:为什么我们开启事务,最后在提交之前也发现数据已经进行了修改?其实是自己有点迷糊了。个人理解,数据库的事务是指的数据库的一次完整操作,我们在进行数据库操作的过程中,如果自己来定义事务,那么我们能够控制他的提交和回滚操作。而在这个事务中这些操作对本事务是可见的,对其他事务(进程)却是不可见的。具体情况如下:

1.首先我们开启一个终端进行操作,在这里我们开启一个事务,对数据进行修改,在本事务中我们可以发现数据已经的到了修改,但是放我们开启另一个终端的时候却发现还是原始数据。着就相当于在本事务中虽然进行了修改但是还没有进行写入。其他事务是看不到的。


2. 其实我们平时所做的一次操作就相当于一次事务,并且都在同一个事务之中,我们进行了多次操作但是都没有进行提交,这是很危险的,如果在实际工作中,我们进行了数据库的操作,(autocommit=0的情况)但是其实数据库并没有提交,在这个时候假设发生了回滚,则上一次commit到现在的所有操作均被回滚了。如下:
我们设置autocommit=0,并且我们对数据进行第一次改动,可以发现在本事务中我们的改动已经成功了。

我们进行了第二次改动,但是当我们进行rollback之后,数据又回到了初始的状态。


0 0
原创粉丝点击