2010-08-22 26 views
5

Estoy usando PostgreSQL 8.1.11.postgresql insertar múltiples filas - error

Y estoy perdiendo la cabeza. ¿Por qué no puedo usar una instrucción SQL básica como INSERT?

proporciono:

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 

lo que me falta? Esto parece una instrucción SQL INSERT básica para insertar múltiples filas. ¿Mi problema está relacionado con mi versión de PostgreSQL?

Estoy insertando muchas filas y estoy buscando optimizar INSERT múltiples filas en lugar de colocar varios INSERT.

+0

tiene usted un mensaje de error? ¿Qué dice exactamente? – pleasedontbelong

+0

Muéstrenos el mensaje de error y podemos ayudarlo. La coma no es el problema. PD. 8.1.11 está desactualizado, la última versión 8.1 es 8.1.21 y también estará fuera de servicio este año. Comience a actualizar a una versión más nueva. error –

+0

SQL: ERROR: error de sintaxis en o cerca "" al carácter 111 En declaración: INSERT INTO the_leads_details (ID, lead_id, question_id, i_value, c_value) VALORES (1, 1, 1, NULL , '4500'), (2, 1, 2, 1, NULO); – bensiu

Respuesta

14

sintaxis de inserción de varias filas no se admite en PostgreSQL 8.1, debe actualizar a 8.2 o más reciente (y si se actualiza hoy en día, que realmente debería actualizar a 8.4, no 8.2!)

Otra razón es, como Frank mencionó en un comentario, esa versión 8.1 terminará su ciclo de vida en noviembre, por lo que es realmente hora de comenzar a investigar la actualización.

1

La sintaxis es correcta, ¿estás seguro de que el problema está en la coma?

2

Sé que es un hilo viejo, pero, esto va a funcionar:

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 
); 
Cuestiones relacionadas