2016-04-02 7 views
6

मैं PostgreSQL में निम्न आदेश:इनसेट पर: स्तंभ संदर्भ "स्कोर" अस्पष्ट है

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`) 

मैं निम्नलिखित त्रुटि मिलती है:

column reference "score" is ambiguous 

मैंने सोचा कि यह अजीब था के रूप में मैं केवल हूँ एक टेबल का उपयोग करना कोई विचार? EXCLUDED.score और word_relations.score:

उत्तर

18

set खंड में = के दाईं ओर, वहाँ score के लिए दो संभावनाएं हैं। पूर्व डालने वाले मूल्य तक पहुंचने का एक तरीका है; उत्तरार्द्ध पंक्ति में संग्रहीत मूल्य तक पहुंचने का एक तरीका है।

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

जो मामले में '' EXCLUDED.score' से अलग हो word_relations.score' देगा:

मैं रूप में यह लिख होगा? क्या उनके बीच विभाजन का कोई कारण है जब यह स्पष्ट रूप से कहा गया कि संघर्ष उस कॉलम पर है ?? – leoOrion

+0

word_relations.score पुराना मान है, और EXCLUDED.score वह नया है जिसे आप अभी सम्मिलित कर रहे हैं –

संबंधित मुद्दे