mysql的事務的自動提交

      mysql事務的自動提交

    由於技術比較菜,在上一篇關於數據庫儲存引擎的學習中發現:爲什麼我們開啓事務,最後在提交之前也發現數據已經進行了修改?其實是自己有點迷糊了。個人理解,數據庫的事務是指的數據庫的一次完整操作,我們在進行數據庫操作的過程中,如果自己來定義事務,那麼我們能夠控制他的提交和回滾操作。而在這個事務中這些操作對本事務是可見的,對其他事務(進程)卻是不可見的。具體情況如下:

1.首先我們開啓一個終端進行操作,在這裏我們開啓一個事務,對數據進行修改,在本事務中我們可以發現數據已經的到了修改,但是放我們開啓另一個終端的時候卻發現還是原始數據。着就相當於在本事務中雖然進行了修改但是還沒有進行寫入。其他事務是看不到的。


2. 其實我們平時所做的一次操作就相當於一次事務,並且都在同一個事務之中,我們進行了多次操作但是都沒有進行提交,這是很危險的,如果在實際工作中,我們進行了數據庫的操作,(autocommit=0的情況)但是其實數據庫並沒有提交,在這個時候假設發生了回滾,則上一次commit到現在的所有操作均被回滾了。如下:
我們設置autocommit=0,並且我們對數據進行第一次改動,可以發現在本事務中我們的改動已經成功了。

我們進行了第二次改動,但是當我們進行rollback之後,數據又回到了初始的狀態。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章