如何通过Python向PostgreSQL插入布尔值并实现内容审核功能?
实现步骤
- 首先修正并完善你的查询语句
你现有的SQL存在两个问题:缺少FROM 数据表名、排序关键字是ORDER BY而非SORT BY,另外必须把待审核消息的唯一主键ID查出来,才能精准定位要更新的记录,示例代码(把你的表名替换成实际表名,主键字段如果不是id也对应修改):
# 拉取最新1条待审核消息,同时获取主键ID cur.execute("SELECT id, name, message, date, time FROM 你的表名 WHERE acceptreject IS NULL ORDER BY time DESC LIMIT 1") current_msg = cur.fetchone() if not current_msg: print("当前无待审核内容") return # 存储当前待审核消息的ID,用于后续更新 current_msg_id = current_msg[0]
- 审核操作的更新逻辑
当审核人员选择通过/驳回时,直接用刚才存储的current_msg_id作为筛选条件更新acceptreject字段即可:
# 审核通过的情况 cur.execute("UPDATE 你的表名 SET acceptreject = TRUE WHERE id = %s", (current_msg_id,)) # 如果是驳回,把上面的TRUE改成FALSE即可 # 注意要提交事务,否则更新不会生效,conn为你创建的数据库连接对象 conn.commit()
- 自动加载下一条待审核消息
更新完成后,直接重新执行第一步的查询语句,就能拿到最新的待审核消息,重复上述流程即可。
注意事项
- 上面示例中
%s是参数化查询占位符,不同数据库驱动占位符可能不同,比如sqlite用?,请根据你使用的数据库调整,不要直接拼接SQL字符串避免注入风险 - 如果存在多个审核人员同时操作的场景,可以在查询语句末尾加
FOR UPDATE SKIP LOCKED,避免多个人拉到同一条待审核消息产生冲突
内容的提问来源于stack exchange,提问作者anon
相关产品推荐
相关产品推荐

