python - 如何在 python 的原始 SQL 中提交更新

标签 python sql django postgresql

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。

最佳答案

您没有指定要处理的数据库,这可能会稍微改变答案。但是,对于大多数数据库连接,您需要使用 connection.commit() 完成才能真正保存对数据库的更改。这包括更新和插入操作。 commit() 失败通常会导致操作回滚。

关于python - 如何在 python 的原始 SQL 中提交更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15415835/

相关文章:

python - 如何在不丢失数据的情况下更改模型类名称?

python - 我如何使用 gevent 创建类似 "Omegle"的随机聊天?

mysql - SQL删除列中的每个唯一值?

python - html 模板中的 Django for 循环不显示

python - Django HTML5 样板页眉和页脚

python - 在 Python 中将输入函数参数放入字典的最佳方法是什么?

python - 如何在python中按数字获取顶级protobuf枚举值名称?

sql - 如何将 SQL 子查询转换为联接

SQLite group_concat 选择 "special needs"

python - 如何多次运行一个函数并返回不同的结果python