0
cursor = connection.cursor()
cursor.execute("UPDATE public.rsvp SET status=TRUE WHERE rsvp_id=%s", [rsvp_id])
cursor.execute("SELECT status, rsvp_id FROM public.rsvp WHERE rsvp_id=%s", [rsvp_id])
row = cursor.fetchall()

Djangoプロジェクトでこれを実行すると、期待どおりに行が返されますが、後で同じ行のクエリを選択すると、ステートメントが実際に実行されなかったように見えます。私のコードでは、「ステータス」列のデフォルトはNULLです。これを実行した後も、テーブルにNULLが表示されます。

4

1 に答える 1

3

扱っているデータベースを指定しなかったため、答えが多少変わる可能性があります。connection.commit()ただし、ほとんどのデータベース接続では、データベースに変更を実際に保存するために終了する必要があります。これには、更新操作と挿入操作の両方が含まれます。通常、失敗するcommit()と、アクションがロールバックされます。

于 2013-03-14T17:16:43.867 に答える