Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql与couse+;upsert=错误(命令不能再次影响行)_Sql_Postgresql - Fatal编程技术网

sql与couse+;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

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 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。