2010-08-22 10 views
5

मैं PostgreSQL 8.1.11 का उपयोग कर रहा हूं।postgresql एकाधिक पंक्तियां डालें - विफल

और मैं अपना दिमाग खो रहा हूं। मैं बुनियादी SQL कथन का उपयोग INSERT के रूप में क्यों नहीं कर सकता?

मैं प्रदान करते हैं:

INSERT INTO the_leads_details (id, lead_id, question_id, i_value, c_value) VALUES 
(1, 1, 1, NULL, '4500'), (2, 1, 2, 1, NULL); 

         ^this comma is a problem 

मैं क्या याद आ रही है? यह कई पंक्तियों को सम्मिलित करने के लिए एक मूल SQL INSERT कथन की तरह लगता है। क्या मेरी समस्या मेरे PostgreSQL संस्करण से संबंधित है?

मैं बहुत सारी पंक्तियां डाल रहा हूं और मैं कई आईएनएसईआरटी रखने के बजाय INSERT एकाधिक पंक्तियों को अनुकूलित करने के लिए देख रहा हूं।

+0

आपको एक त्रुटि संदेश है? यह वास्तव में क्या कहता है? – pleasedontbelong

+0

हमें त्रुटि संदेश दिखाएं और हम आपकी मदद कर सकते हैं। अल्पविराम समस्या नहीं है। Ps। 8.1.11 पुराना है, नवीनतम 8.1 संस्करण 8.1.21 है और इस वर्ष भी सेवा से बाहर होगा। एक नए संस्करण में उन्नयन शुरू करें। –

+0

एसक्यूएल त्रुटि: त्रुटि: पर या पास सिंटैक्स त्रुटि "," चरित्र 111 पर बयान में: सम्मिलित the_leads_details (आईडी, lead_id, question_id, i_value, c_value) में मूल्यों (1, 1, 1, शून्य , '4500'), (2, 1, 2, 1, न्यूल); – bensiu

उत्तर

14

बहु पंक्ति सम्मिलित वाक्य रचना PostgreSQL 8.1 में समर्थित नहीं है, तो आप 8.2 या नए नवीनीकृत करने की आवश्यकता (और यदि आप आज के उन्नयन, तुम सच में 8.4, नहीं 8.2 नवीनीकृत करना चाहिए!)

एक और कारण है, जैसा कि फ्रैंक ने एक टिप्पणी में उल्लेख किया है कि संस्करण 8.1 नवंबर में जीवन के अंत में जाएगा, इसलिए वास्तव में समय अपग्रेडिंग की जांच शुरू करने के लिए है।

1

वाक्यविन्यास सही है, क्या आप सुनिश्चित हैं कि समस्या अल्पविराम में है?

4

मुझे यकीन नहीं है कि पोस्टग्रेस्ल 8.1 VALUES में एकाधिक पंक्तियों का समर्थन करता है। वाक्य रचना है:

INSERT INTO table [ (column [, ...]) ] 
    { DEFAULT VALUES | VALUES ({ expression | DEFAULT } [, ...]) | query } 

http://www.postgresql.org/docs/8.1/static/sql-insert.html

2

मैं जानता हूँ कि यह एक पुरानी धागा है, लेकिन, इस काम करेगा:

INSERT INTO the_leads_details (id, lead_id, question_id, i_value, c_value) (
SELECT 1, 1, 1, NULL, '4500' 
UNION SELECT 2, 1, 2, 1, NULL 
); 
संबंधित मुद्दे