2010-06-01 21 views
6

¿Cómo puede MySQL insertar múltiples registros ejecutando una sola instrucción de inserción?Insertar más de un registro con una sola instrucción de inserción

El problema en cuestión implica de 1 a 10 registros, dependiendo de la entrada del usuario.

+1

puedes hacerlo con consultas separadas también. –

+0

pero esto se corrigió en 3 registros, pero ¿qué pasa si no? de registro son dinámicos? de 1 registro a 10? – nectar

Respuesta

11

Simplemente separe los valores por comas.

INSERT INTO 
    tablename (colname1, colname2, colname3) 
VALUES 
    ('foo1', 'bar1', 'waa1'), 
    ('foo2', 'bar2', 'waa2'), 
    ('foo3', 'bar3', 'waa3') 
+1

pero esto se corrigió en 3 registros, pero ¿qué pasa si no? de registro son dinámicos? de 1 registro a 10? – nectar

+4

¿Simplemente genera el sql dinámicamente usando el mismo lenguaje de programación cuando está reuniendo la entrada del usuario? Alternativamente, también puede usar "inserciones por lotes". Sin embargo, los detalles dependen del lenguaje de programación en cuestión. Si fuera por ejemplo Java, sugeriría 'PreparedStatement # addBatch()' para esto. Si fue PHP, entonces 'implode()' puede ser útil. – BalusC

Cuestiones relacionadas