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