2013-01-24 51 views
0

我如何知道下列更新是否成功執行,現在執行該語句,但該表不反映該情況。如何找出更新查詢的狀態

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

回答

1

據我所知,你需要調用

mysql.commit() 

以使更改生效。

這可以確保您的數據庫操作(可以有多個)在一個執行所謂交易。如果出現問題,您可以恢復整個更改。

在一次交易中,您將放在一起的東西放在一起,如添加一個新人並在另一個表中設置對該人的引用。

也是章插入操作請參閱本網頁(即用戶在出現異常的情況下,使用rollback)上:http://www.tutorialspoint.com/python/python_database_access.htm

0

您可以參考文檔於開源社區,http://mysql-python.sourceforge.net/MySQLdb.html。首先,正如你所提到的,你在這個遊標上使用連接,遊標和查詢執行。這是例如,從DOC:

c.fetchone() 

結果作爲一個元組返回:

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.fetchall() 

c.fetchmany() 
0

如果自動提交默認是關閉的,你需要明確執行commit聲明。

SET autocommit = 1啓用自動提交,每個語句都會在運行時被提交。參考this link