Python MySQL 插入操作疑難解答
在 Python 中,使用 MySQL API 與 MySQL 資料庫交互,插入記錄可能會遇到障礙。本文解決了這樣一個問題:儘管實現看似正確,但記錄卻無法插入。
提供的程式碼建立了與資料庫的連接,並嘗試將記錄插入「文件」表中。但是,插入操作失敗。要解決這個問題,了解資料庫事務的重要性至關重要。
在 MySQL 中,資料庫的變更是透過事務管理的。交易在連線建立時開始,在連線關閉或明確呼叫提交或回滾操作時結束。事務期間對資料庫所做的任何變更都不是永久的,直到交易提交為止。
在提供的程式碼中,插入操作執行成功,但在連線關閉之前更改並未提交到資料庫(使用 db.close())。如果不提交事務,一旦連線關閉,插入操作就會被丟棄。
要解決此問題並確保插入操作成功,您應該在關閉資料庫連線之前呼叫 db.commit() 。此操作提交事務,使插入的記錄在資料庫中持久存在。
以下是包含提交作業的修改後的程式碼:
db = MySQLdb.connect("localhost", "root", "padmaramulu", "pdfsearch")
cursor = db.cursor()
# cursor.execute("""CREATE TABLE IF NOT EXISTS documents (docid INT NOT NULL ,PRIMARY KEY(docid),docname CHAR(30)) engine=innodb""")
temp = "hello"; number = 2;
cursor.execute('insert into documents(docid,docname) values("%d","%s")' % (number, temp))
db.commit()
db.close()
透過包含 db.commit() 調用,事務期間所做的更改(包括插入操作)將提交到資料庫並成為永久的。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3