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 サイトの他の関連記事を参照してください。