如何找出更新查询的状态

时间:2013-01-24 08:01:47

标签: python mysql-python

我如何知道以下更新是否成功执行,现在语句执行但该表没有反映出来。

cursor = mysql.cursor()
cursor.execute("""UPDATE foo SET key1 = %s  WHERE id = %s""", (val1, id2))

3 个答案:

答案 0 :(得分:1)

据我所知,您需要致电

mysql.commit()

让您的更改生效。

这可确保您的数据库操作(您可以拥有多个)在一个所谓的事务中执行。如果出现问题,您可以恢复整个更改。

在一次交易中,您会放置属于一起的内容,例如添加新人并在另一个表中设置对该人的引用。

另请参阅此页面上的插入操作一章(例如,如果发生异常,他们会使用rollback):http://www.tutorialspoint.com/python/python_database_access.htm

答案 1 :(得分:0)

您可以参考Source Forge上的文档http://mysql-python.sourceforge.net/MySQLdb.html

首先,正如您所提到的,您可以在此游标上执行连接,游标和查询。这是来自doc:

的示例
import MySQLdb
db=MySQLdb.connect(passwd="moonpie",db="thangs")
c=db.cursor()
max_price=5
c.execute("""SELECT spam, eggs, sausage FROM breakfast
          WHERE price < %s""", (max_price,))

然后,您使用以下内容获取结果

c.fetchone()

结果以单个元组的形式返回。如果结果包含更多行,请使用

c.fetchall()

c.fetchmany()

答案 2 :(得分:0)

如果默认情况下禁用自动提交,则需要显式执行commit语句。

SET autocommit = 1启用自动提交,每个语句都会在运行时提交。请参阅this link