出现事务 不会回滚(数据库引擎已设置为innodb) Python版本(2.7.12)

57aad9af0001905705000165.jpg

57aad9b00001a4dd05000331.jpg

#connection
import MySQLdb

conn = MySQLdb.Connect(
                        host = '127.0.0.1',
                        port = 3306,
                        user = 'root',
                        passwd = '',
                        db = 'innodb',
                        charset = 'utf8'
                        )
cursor = conn.cursor()

sql_insert = 'insert into stu (name) values("ddd")'
sql_update = "update stu set name='小明dddd' where id=14"
sql_delete = 'delete from stu where id=1111'

# try:
#         #cursor.execute(sql_insert)
#         #print cursor.rowcount
#         #cursor.execute(sql_update)
#         #print cursor.rowcount
#         cursor.execute(sql_delete)
#         print cursor.rowcount

#         conn.commit()
# except Exception as e:
#     print e
#     conn.rollbake()

try:
    cursor.execute(sql_insert)
    print(cursor.rowcount)
    cursor.execute(sql_update)
    print(cursor.rowcount)
    cursor.execute(sql_delete)
    print(cursor.rowcount)
    conn.commit()            #以上三条操作作为整体单元事务,提交数据
except Exception as e:
    print(e)
    conn.rollback()          #事务出现异常回滚数据


cursor.close()
conn.close()


6813
浏览 1650回答 1
1回答

HansonQ

是不是代码里面没有关闭自动提交
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL
Python