2016-04-02 16 views
6

I持ち、PostgreSQLで次のコマンドを実行します。は:列参照 "スコア" はあいまいです

column reference "score" is ambiguous 

は私が唯一だとして、それは奇妙だと思った:私は次のエラーを取得する

INSERT INTO word_relations(word1_id, word2_id, score) VALUES($1, $2, $3) 
ON CONFLICT (word1_id, word2_id) DO UPDATE SET score = score + $3`) 

1つのテーブルを使用します。何か案は? EXCLUDED.scoreword_relations.score

set句の =の右側に

答えて

18

scoreのための2つの可能性があります。前者は挿入されている値にアクセスする方法です。後者は行に格納された値にアクセスする方法です。

私はこのように記述します。 `` EXCLUDED.score`は異なることword_relations.score`なる場合

ON CONFLICT (word1_id, word2_id) DO 
    UPDATE SET score = word_relations.score + EXCLUDED.score 
+0

?紛争がその列にあることが明確に述べられているとき、彼らの間に分裂の理由がありますか? – leoOrion

+0

word_relations.scoreは古い値で、EXCLUDED.scoreは今挿入している新しい値です –

関連する問題