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()事务回滚时,将会清空之前所插入而并未提交的数据