在存储过程中使用事务时,通常会显示设置事务自动提交为0 (set autocommit=0;)这里极有可能是个坑,在同一个连接中,事务执行完或存储过程执行完后,autocommit仍为0,如果后面没有commit语句则可能导致数据丢失;对应mysql官网,没有解释很清楚 set autocommit =0 和 start transaction,是否必须结合使用,但有一句是,start transaction 有隐含的 设置autocommit为0 作用,原句为: To disable autocommit mode implicitly for a single series of statements, use the START TRANSACTION statement ,所以可以去掉set autocommit=0 ,如果非得使用时在commit和rollback 后,将 autocommit设置为1
相关文章
- 10-23线程入门之start()和run()的区别
- 10-23locust2.0+教程:005 - on_start和on_stop
- 10-23同为后台运行的screen, nohup和start-stop-daemon到底有什么区别
- 10-23[Unity3D]脚本中Start()和Awake()的区别
- 10-23Application_Start和Application_End事件执行时间
- 10-23Python之路(第四十二篇)线程相关的其他方法、join()、Thread类的start()和run()方法的区别、守护线程
- 10-23启动和关闭ADB服务(adb start-server和adb kill-server)
- 10-23《编写高质量Python代码的59个有效方法》——第6条:在单次切片操作内,不要同时指定start、end和stride
- 10-23FFMPEG 用 start_number 和 frames:v 指定图片序列开始和结束帧
- 10-23【Unity3D 灵巧小知识点】 | Unity中 OnEnable 和 Awake、Start 的区别