मैं कुछ कोड के साथ काम कर रहा हूं। ऐसे कई प्रश्न हैं जिनके प्रभाव हैं, यदि पंक्ति भरने वाले कुछ डेटा के साथ पंक्ति मौजूद है, तो उस पंक्ति को शेष डेटा के साथ अपडेट किया गया है, और यदि पंक्ति मौजूद नहीं है, तो एक नया बनाया गया है। वे इस तरह दिखेगा:यह SQL क्वेरी मौजूद होने पर पंक्ति को अद्यतन करने के लिए कैसे क्वेरी करती है, या यदि नहीं, तो कार्य करें?
INSERT INTO table_name (col1, col2, col3) SELECT %s AS COL1, %s AS COL2, %s AS COL3 FROM (SELECT %s AS COL1, %s AS COL2, %s AS COL3) A LEFT JOIN table_name B ON B.COL1 = %s AND B.COL2 = %s --note: doesn't mention all columns here WHERE B.id IS NULL LIMIT 1
मैं इस पैटर्न की नकल कर सकते हैं और यह काम करने लगता है, लेकिन मैं क्या वास्तव में पर्दे के पीछे चल रहा है के रूप में उलझन में हूँ। क्या कोई यह स्पष्ट कर सकता है कि यह वास्तव में कैसे काम करता है? मैं PostgreSQL का उपयोग कर रहा हूँ।
आह तो यह वास्तव में एक प्रविष्टि को अद्यतन नहीं करेगा जो पहले से मौजूद है? यह सिर्फ यह सुनिश्चित कर रहा है कि डुप्लिकेट पंक्तियां नहीं बनाई गई हैं? – Claudiu
यूप, जहां खंड केवल यह सुनिश्चित करने के लिए है कि कोई डुप्लिकेशन नहीं है। –
इस बनाम कुछ करने के लिए यहां कोई अंतर है जैसे: 'table_name (col1, col2, col3) में INSERT चुनें% s,% s,% s चुनें जहां मौजूद नहीं है (चुनें * table_name से T के रूप में T.col1 =% एस और टी.col2 =% एस) '? – Claudiu