ホームページ  >  記事  >  データベース  >  MySQL の更新が Python でコミットされないのはなぜですか?

MySQL の更新が Python でコミットされないのはなぜですか?

DDD
DDDオリジナル
2024-11-04 11:10:02779ブラウズ

Why Are My MySQL Updates Not Committing in Python?

Python での MySQL 更新クエリのトラブルシューティング

Python では、MySQLdb モジュールを使用して MySQL データベースで更新操作を実行するときに、次のことが重要です。変更をコミットして、変更が正常に永続化されていることを確認します。それ以外の場合、更新が実行されているように見えても、実際にはデータベースが変更されていない可能性があります。

次のコードを考えてみましょう:

<code class="python">dbb = MySQLdb.connect(host="localhost", user="user", passwd="pass", db="database")
curb = dbb.cursor()
curb.execute("UPDATE RadioGroups SET CurrentState=1 WHERE RadioID=11")
print "Row(s) were updated :" + str(curb.rowcount)
curb.close()</code>

上記のコードは、影響を受ける行の数を正しくフェッチして出力しますが、データベースはそれ自体は変わらない。変更をコミットして永続化するには、更新クエリの実行後に次のステートメントを追加します。

<code class="python">dbb.commit()</code>

この行は、保留中の変更をすべて完了してデータベースに適用するように MySQL サーバーに指示します。この手順を行わないと、カーソルを閉じると、カーソル セッション内で行われた更新は保持されなくなります。

INSERT、UPDATE、DELETE など、データを変更するすべての SQL 操作には、変更のコミットが不可欠であることに注意してください。 dbb.commit(); を含めることで、変更がデータベースに永続的に反映されるようになります。

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

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