如何在Python中提交原生SQL的UPDATE操作
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项目中,当我执行这个操作时,我得到了我预期的结果行。但是后来当我再次查询同一行时,似乎这个操作根本没有执行过。在我的代码中,"status"这一列默认是NULL。执行完这个操作后,我在表中仍然看到是NULL。
1 个回答
3
你没有说明你使用的是哪种数据库,这可能会影响答案。不过,对于大多数数据库连接来说,你需要在最后加上 connection.commit()
,才能真正把更改保存到数据库里。这包括更新和插入操作。如果不使用 commit()
,通常会导致之前的操作被撤销。