sql - ON CONSTRAINT ON CONFLICT ON CONSTRAINT 未检测到 postgresql 中的唯一冲突
问题描述
我有这行代码
db.execute("""INSERT INTO warelo.users (email, username, hash, wg_puid) VALUES(%s, %s, %s, %s)
ON CONFLICT ON CONSTRAINT users_email_username_user_id_key DO NOTHING
RETURNING (user_id)""",
(request.form.get("email"), request.form.get("username"), hash, wg_puid))
result = db.fetchall()
它应该做的是注册一个用户,并确保用户名和电子邮件是唯一的,如果用户的用户名、电子邮件或 user_id 已经存在,则什么都不做。代码本身运行,但我仍在插入重复的电子邮件和用户名。似乎 ON CONFLICT ON CONSTRAINT 永远不会触发,即使它应该触发。我的代码有什么问题?
解决方案
推荐阅读
- linux - Docker 多阶段构建:COPY --from=builder 失败:没有这样的文件或目录
- docker - .NET Core 3 Docker 项目在失败前生成太多 307 重定向
- c - GPGME 解密显示无数据
- r - 使用 gsub 循环以通过存储在向量中的不同列替换字符
- shell - 查找操作员在目录中上不去?
- bash - 无法在 Mac 上安装 Delve Go 调试器
- flutter - 推荐的数据流(导入/导出)
- android - 颤动中的底部导航栏颜色恢复为黑色
- node.js - 如何在 Docker 中将 NATS 服务器连接到 NodeJS 应用程序
- python - sklearn 混淆矩阵在错误的位置显示错误的尺寸/刻度线