为了账号安全,请及时绑定邮箱和手机立即绑定

关闭事务自动提交无效,回滚也无效

我在开始设置了  conn.autocommit(False) ,后面没加 commit()也会自动提交事务,而且在异常处理中,能进入处理显示异常,但是rollback 没有效果是为什么?我用的是CentOS,    mysql 和api库都是用yum自动安装的

正在回答

2 回答

我是通过看数据库里面数据确认的。代码比较类似,就这么多

#!/usr/bin/python

from MySQLdb import connect

conn = connect(db="test", user="root", host="localhost", unix_socket="/var/lib/mysql/mysql.sock")

cur = conn.cursor()

sql_insert = "insert into test_table(id,name) values('6','f')"

sql_update = "update test_table set name='A' where id ='1'"

sql_delete = "delete from test_table where id>'4'"


conn.autocommit(False)


try:

    cur.execute(sql_insert)

    print cur.rowcount

    cur.execute(sql_update)

    print cur.rowcount

    cur.execute(sql_delete)

    print cur.rowcount


except Exception as e:

    print e

    conn.rollback()


cur.close()

conn.close()


0 回复 有任何疑惑可以回复我~

请问你所指的自动提交事务是怎么确认的呢?如果是在当前同一个session里面是可以看到提交的结果的,但是别的session就看不到你的操作了,这就是事务的隔离性。

再有rollback和commit在autocommit设置为false之后都是有效果的。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Python操作MySQL数据库
  • 参与学习       84996    人
  • 解答问题       171    个

本视频教程讲解Python如何开发MySQL数据库程序

进入课程

关闭事务自动提交无效,回滚也无效

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号