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()事務回滾時,將會清空之前所插入而並未提交的數據