2010-08-22 22 views
5

Sto usando PostgreSQL 8.1.11.postgresql inserire più righe - fail

E sto perdendo la testa. Perché non posso utilizzare un'istruzione SQL di base come INSERT?

fornisco:

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 

Cosa mi manca? Sembra un'istruzione SQL INSERT di base per inserire più righe. Il mio problema è legato alla mia versione di PostgreSQL?

Sto inserendo un sacco di righe e sto cercando di ottimizzare INSERT più righe invece di inserire diversi INSERT.

+0

Avete un messaggio di errore? cosa dice esattamente? – pleasedontbelong

+0

Mostraci il messaggio di errore e possiamo aiutarti. La virgola non è il problema. Ps. 8.1.11 è obsoleto, l'ultima versione 8.1 è 8.1.21 e sarà fuori servizio anche quest'anno. Inizia l'aggiornamento a una versione più recente. Errore di –

+0

SQL: ERRORE: errore di sintassi o in prossimità "" a carattere 111 Nella dichiarazione: INSERT INTO the_leads_details (id, lead_id, question_id, i_value, c_value) VALORI (1, 1, 1, NULL , '4500'), (2, 1, 2, 1, NULL); – bensiu

risposta

14

sintassi INSERT multi-riga non è supportato in PostgreSQL 8.1, è necessario aggiornare a 8.2 o più recente (e se si esegue l'aggiornamento di oggi, si dovrebbe eseguire l'aggiornamento a 8.4, non 8.2!)

Un'altra ragione è, come Frank ha menzionato in un commento, quella versione 8.1 andrà a fine vita a novembre, quindi è davvero tempo per iniziare a studiare l'aggiornamento.

1

La sintassi è corretta, sei sicuro che il problema sia nella virgola?

2

So che è un vecchio thread, ma, questo funzionerà:

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 
); 
Problemi correlati