首頁  >  文章  >  資料庫  >  為什麼我的 Python MySQL 查詢不斷回傳相同的資料?

為什麼我的 Python MySQL 查詢不斷回傳相同的資料?

Linda Hamilton
Linda Hamilton原創
2024-11-06 12:29:02597瀏覽

Why Does My Python MySQL Query Keep Returning the Same Data?

從 Python 查詢 MySQL 產生相同的資料

從 Python 重複查詢 MySQL 資料庫以檢索動態資料構成了挑戰。眾所周知,僅在循環中迭代查詢不足以從資料庫中獲取新資料。

您提供的程式碼說明了這個問題:

<code class="python">for i in range(listSize):
    #...
    mycursor = mydb.cursor(dictionary=True)
    mycursor.execute(sql)
    #...</code>

即使嘗試使用 fetchall 、 fetchmany 和 fetchone,結果仍然停滯不前。

解決方案:提交連線

要解決此問題,每個查詢執行後都必須提交聯絡。此操作結束正在進行的事務並啟動一個新事務,使後續查詢能夠偵測上一個事務期間所做的變更。

<code class="python">while True:
    #...
    mycursor = mydb.cursor(dictionary=True)
    mycursor.execute(sql)
    #...
    mydb.commit()
    #...</code>

隔離等級和可重複讀取預設值

這個概念植根於隔離等級。預設情況下,MySQL 對 InnoDB 使用 REPEATABLE READ。這意味著在事務內,後續讀取將保留由事務初始讀取建立的快照。因此,如果不提交,後續查詢將不會捕獲任何更改。

以上是為什麼我的 Python MySQL 查詢不斷回傳相同的資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn