sql与couse+;upsert=错误(命令不能再次影响行)
Postgresql 我尝试以下一种方式使用另一个表的UPSERT:sql与couse+;upsert=错误(命令不能再次影响行),sql,postgresql,Sql,Postgresql,Postgresql 我尝试以下一种方式使用另一个表的UPSERT: WITH out_user_a AS( UPDATE user_a SET inactive = TRUE where (visit IS NULL OR purchase IS NULL) AND inactive = FALSE AND user_id = 136209 RETURNING user_guid ), new_user_a A
WITH out_user_a AS(
UPDATE user_a
SET inactive = TRUE
where (visit IS NULL OR purchase IS NULL) AND inactive = FALSE
AND user_id = 136209
RETURNING user_guid
),
new_user_a AS (
INSERT INTO user_a(user_guid, user_id, created_at, updated_at, next_update_at)
SELECT DISTINCT ON (user_guid) user_guid, 136209, NOW(), NOW(), CURRENT_DATE + 60 FROM out_user_a
ON CONFLICT (user_id, next_update_at) DO UPDATE SET
updated_at= NOW(), inactive=FALSE
RETURNING *
) SELECT * FROM new_user_a
我在冲突中得到错误,DO UPDATE命令不能再次影响行
如果我使用VALUES()
而不是SELECT。。。来自…
因此,在这种情况下,我能做什么,请帮助…我认为,您的do更新集缺少一个WHERE。我认为,您的do更新集缺少一个WHERE。