我的约束是我的 upsert 的限制因素吗?
Is my constraint the limiting factor in my upsert?
我目前有一个名为 prefixes
的 table。此 table 有 prefix
和 BIGINT
,以及 guild
和 BIGINT UNIQUE
。我的查询是这样的:
INSERT INTO prefixes VALUES (, ) ON CONFLICT (prefixes.guild) DO UPDATE SET "prefix" = WHERE "guild" = ;
其中 </code> 和 <code>
分别是 14865
和 '~'
。 (我的图书馆确实允许这种语法。
目前失败 AmbiguousColumnError: column reference "guild" is ambiguous
。
unique
约束是否会导致此错误?
否,但在 WHERE
子句中,可以在 prefixes.guild
和 EXCLUDED.guild
之间进行选择,其中后者代表要插入的值。所以你必须说出你指的是哪一个:
WHERE prefixes.guild =
但这完全没有必要,因为 UPDATE
只会影响匹配的行,您应该省略整个冗余的 WHERE
子句。
我目前有一个名为 prefixes
的 table。此 table 有 prefix
和 BIGINT
,以及 guild
和 BIGINT UNIQUE
。我的查询是这样的:
INSERT INTO prefixes VALUES (, ) ON CONFLICT (prefixes.guild) DO UPDATE SET "prefix" = WHERE "guild" = ;
其中 </code> 和 <code>
分别是 14865
和 '~'
。 (我的图书馆确实允许这种语法。
目前失败 AmbiguousColumnError: column reference "guild" is ambiguous
。
unique
约束是否会导致此错误?
否,但在 WHERE
子句中,可以在 prefixes.guild
和 EXCLUDED.guild
之间进行选择,其中后者代表要插入的值。所以你必须说出你指的是哪一个:
WHERE prefixes.guild =
但这完全没有必要,因为 UPDATE
只会影响匹配的行,您应该省略整个冗余的 WHERE
子句。