类型 "INSERT ON CONFLICT DO NOTHING RETURNING" 的查询不返回任何内容



"返回"语句返回0行,但我希望由于冲突而无法插入的行。我在那里错过了什么?

详细信息:table user_strategies有主键(id_strategy,id_account(

xsignalsbot=# select * from users_strategies;
 id | id_strategy | id_account | risk | active
----+-------------+------------+------+--------
  1 |           1 |         48 | 0.50 | t
  2 |           2 |         48 | 0.25 | f
(2 rows)
xsignalsbot=# insert into users_strategies (id_strategy,id_account) 
                 values (1,48) on conflict (id_strategy,id_account) do nothing
                    returning active,risk;
 active | risk
--------+------
(0 rows)

DO NOTHING不适用于 RETURNING

可选的返回子句会导致插入器根据每行实际插入(或更新,如果使用了冲突DO DO UPDATE RECERES(来计算和返回值。

参考

更改不做任何更新set语句(不修改最终结果(给出了想要的结果:

xsignalsbot=# insert into users_strategies (id_strategy,id_account) 
                 values (1,48) on conflict (id_strategy,id_account) do update set
                   id_strategy=excluded.id_strategy returning users_strategies.active, users_strategies.risk;
 active | risk
--------+------
 t      | 0.50
(1 row)

最新更新