ホームページ >データベース >mysql チュートリアル >Python での MySQL の更新が有効にならないのはなぜですか?

Python での MySQL の更新が有効にならないのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-03 14:43:02805ブラウズ

Why Aren't My MySQL Updates in Python Taking Effect?

Python での MySQL 更新: 失敗した更新への対処

Python スクリプトで MySQL 更新クエリを実行すると、更新コマンドが実行される問題が発生する可能性があります。実行が成功したことを報告しますが、テーブルは変更されません。これを修正するには、MySQL のトランザクションとコミットの概念を理解することが重要です。

トランザクションは、単一の単位として実行される一連の操作です。 MySQL では、更新クエリが実行されるとトランザクションが開始され、トランザクションがコミットされると終了します。トランザクションがコミットされていない場合、そのトランザクション中に行われた変更は永続的なものではなく、破棄されます。

質問に記載されている問題に対処するために、欠落しているステップは、更新クエリの実行後に commit コマンドを発行することです。実行されました。このコミット コマンドは、トランザクション内で行われたすべての変更をデータベースに永続的に保存する必要があることを MySQL サーバーに通知します。

次のコード スニペットは、コミット コマンドの使用法を示しています。

import MySQLdb

dbb = MySQLdb.connect(host="localhost", user="user", passwd="pass", db="database")
try:
    curb = dbb.cursor()
    curb.execute("UPDATE RadioGroups SET CurrentState=1 WHERE RadioID=11")
    dbb.commit()  # Commit the transaction
    print("Row(s) were updated :" + str(curb.rowcount))
    curb.close()
except MySQLdb.Error as e:
    print("Query failed")
    print(e)

By dbb.commit() ステートメントを含め、RadioGroups テーブルの更新を含め、トランザクション内で行われたすべての変更はデータベースに永続的に保存されます。

以上がPython での MySQL の更新が有効にならないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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