ON CONFLICT ON CONSTRAINT没有检测postgresql中的唯一冲突

时间:2018-05-24 10:24:21

标签: sql postgresql upsert sql-returning

我有这行代码

        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永远不会触发,即使它应该。我的代码在这里出了什么问题?

My unique constraints here:

0 个答案:

没有答案