我如何知道下列更新是否成功執行,現在執行該語句,但該表不反映該情況。如何找出更新查詢的狀態
cursor = mysql.cursor()
cursor.execute("""UPDATE foo SET key1 = %s WHERE id = %s""", (val1, id2))
我如何知道下列更新是否成功執行,現在執行該語句,但該表不反映該情況。如何找出更新查詢的狀態
cursor = mysql.cursor()
cursor.execute("""UPDATE foo SET key1 = %s WHERE id = %s""", (val1, id2))
據我所知,你需要調用
mysql.commit()
以使更改生效。
這可以確保您的數據庫操作(可以有多個)在一個執行所謂交易。如果出現問題,您可以恢復整個更改。
在一次交易中,您將放在一起的東西放在一起,如添加一個新人並在另一個表中設置對該人的引用。
也是章插入操作請參閱本網頁(即用戶在出現異常的情況下,使用rollback
)上:http://www.tutorialspoint.com/python/python_database_access.htm
您可以參考文檔於開源社區,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()
如果自動提交默認是關閉的,你需要明確執行commit
聲明。
SET autocommit = 1
啓用自動提交,每個語句都會在運行時被提交。參考this link