答案 0 :(得分:1)
您正在传递true
作为“排除”值,not true
将为false,因此该列将设置为false。
如果要切换该值,则需要取反现有值:
set active = not user_strategies.active
对于以后的帖子,请以格式文本而不是(难以阅读的)屏幕截图显示代码。
答案 1 :(得分:1)
您要否定您设置为true
的冲突输入参数,但是您希望not true
产生true
吗?
只需跳过否定操作,您将使用与插入中指定的值完全相同的行来更新行:
INSERT INTO users_strategies (id_strategy, id_account, active)
VALUES (1, 48, true)
ON CONFLICT (id_strategy, id_account) DO
UPDATE SET active = excluded.active
RETURNING active, risk
;