【发布时间】:2019-09-20 04:46:22
【问题描述】:
“returning”语句返回 0 行,但我想要因为冲突而无法插入的行。我在那里缺少什么?
detail: 表 users_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)
【问题讨论】:
-
returning返回被插入的值,所以这并不让我感到惊讶——没有插入任何行,所以没有任何返回值。可能有一种解决方法,但在这个简化的示例中,我看不出你为什么需要这样做——它所做的只是返回你已经知道的值。我担心的是一种解决方法可能特定于您所拥有的实际场景,并且不适用于简化示例,因此可能值得多解释一下您为什么需要它。
标签: postgresql upsert