如何在具有两列的INSERT sql中检查“ ON CONFLICT”情况?

时间:2019-04-15 12:34:54

标签: postgresql

我需要使用两个不同的ON CONFLICT案例进行INSERT postgreqsl查询。一个用于special_id列,第二个用于slug列。因此,以防万一,如果special_id将发生冲突(uniq失败),则必须对此变量进行更新,而在另一情况下,slug列必须是第二次DO UPDATE代码。

我不能做

... ON CONFLICT (special_id) DO UPDATE ...
... ON CONFLICT (slug) DO UPDATE...

不能做

... ON CONFLICT (special_id, slug) DO UPDATE...

因为:

SQLSTATE[42P10]: Invalid column reference: 7 ERROR:  there is no unique or   
  exclusion constraint matching the ON CONFLICT specification  

预计,在special_id冲突的情况下将是一个UPDATE动作,在slug冲突的第二种情况下-将是另一个UPDATE动作。但是实际上,我只能使用一个ON CONFLICT,只有一列

0 个答案:

没有答案