mysql _提交 commit 與 事務回滾roll back()


1,進行插入之后,再提交,數據庫有數據

2,進行插入之后,進行事務回滾,相當於撤消當前插入動作(相當於清空此次插入數據)

1  //創建表:
2 CREATE TABLE `test_tab` (
3 `f1`  int(11) NOT NULL ,
4 `f2`  varchar(11)  DEFAULT NULL ,
5 PRIMARY KEY (`f1`)
6 )
7 ENGINE=InnoDB

 

[例子],插入數據進入test_tab表,字段[1]是不可重復鍵值
try:
    INSERT INTO test_tab VALUES    (1, '2');  
    print(1)
    INSERT INTO test_tab VALUES    (1, '3');
    print(2)
    commit()
excet ....:
    roll back()
輸出結果
>>>1
>>>[Err] 1062 - Duplicate entry '1' for key 'PRIMARY'
可以看出,第一條是可以插入的,但是第二條出現錯誤,commit沒有提交,跳轉至roll back()之后,第一條也撤消,所以沒有數據插入

 

[例子2]

如果只是單純的插入

1 INSERT INTO test_tab VALUES    (1, '2');  

如上,說明已經開啟了一個事務,並且已經執行了一條正解的插入數據操作,雖然沒有提交,但是之后有數據插入進行commit操作時,之前的插入數據將會一並顯示在數據庫內

如果之前數據插入時是成功的,其中有一條執行錯誤,那么使用roll back()事務回滾時,將會清空之前所插入而並未提交的數據


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM