Instance Nine:使用Transaction(事务) 手动提交,自动回滚

#!/usr/bin/env python
#--*-- coding:utf-8 --*--
__author__ = 'Kevin'

import MySQLdb as mdb
import sys

try:
    conn = mdb.connect('localhost','root','redhat','test')
    cursor = conn.cursor()

    cursor.execute("UPDATE Writers SET Name = %s WHERE Id = %s",("Leo Tolstoy","1"))
    cursor.execute("UPDATE Writers SET Name = %s WHERE Id = %s",("ROB POP","2"))
    cursor.execute("UPDATE Writers SET Name = %s WHERE Id = %s",("Leo POP","3"))

    conn.commit()
    cursor.close()
    conn.close()

except mdb.Error,e:
    conn.rollback()
    print "Error %d:%s" % (e.args[0],e.args[1])

 

若是不存在Writers表,则会出现错误python

出现错误,触发异常处理blog

3条语句的前两条会自动变成没有执行,结果不变utf-8

若是本代码放入一个MyISAM引擎表,,前两句会自动执行,第三句不会,若是是INNDB引擎,则都不会执行it

相关文章
相关标签/搜索