ホームページ  >  記事  >  データベース  >  Python からの MySQL クエリが一貫性のない結果を返すのはなぜですか?

Python からの MySQL クエリが一貫性のない結果を返すのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-07 08:28:03571ブラウズ

Why Are My MySQL Queries from Python Returning Inconsistent Results?

Python からの MySQL クエリにより不整合が発生する

コミットしていないため、クエリは最新のデータを取得していない可能性がありますデータベースに変更が加えられます。デフォルトでは、MySQL は分離レベルを「REPEATABLE READ」に設定します。これは、同じトランザクション内での後続のクエリでは、トランザクション中に行われた変更ではなく、データの初期スナップショットが表示されることを意味します。

データが稼働していることを確認するには現在までは、各クエリの後に接続をコミットする必要がありました。これにより、現在のトランザクションが完了し、データベースから最新の変更を取得するための次のトランザクションが準備されます。

必要なコミットを含むコードの更新バージョンは次のとおりです。

<code class="python"># Main loop
while True:

    # SQL query
    sql = "SELECT * FROM table"

    # Read the database, store as a dictionary
    mycursor = mydb.cursor(dictionary=True)
    mycursor.execute(sql)

    # Store data in rows
    myresult = mycursor.fetchall()

    # Transfer data into list
    for row in myresult:
        myList[int(row["rowID"])] = (row["a"], row["b"], row["c"])

        print(myList[int(row["rowID"])])

    # Commit changes!
    mydb.commit()
    print("---")
    sleep(0.1)</code>

この変更によりを実行すると、コードは各クエリ ループ中にデータベースから最新のデータを取得します。

以上がPython からの MySQL クエリが一貫性のない結果を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。