我需要使用两个不同的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,只有一列