MySQL Volcar una instrucción INSERT para cada fila de datos

178

con la siguiente declaración:

mysqldump --complete-insert --lock-all-tables --no-create-db 
--no-create-info --extended-insert --password=XXX -u XXX 
--dump-date yyy > yyy_dataOnly.sql

Recibo declaraciones INSERT como las siguientes:

INSERT INTO `table` VALUES (1,'something'),(2,'anything'),(3,'everything');

Lo que necesito en mi caso es algo como esto:

INSERT INTO `table` VALUES (1,'something');
INSERT INTO `table` VALUES (2,'anything');
INSERT INTO `table` VALUES (3,'everything');

¿Hay alguna manera de decirle a "mysqldump" que cree una nueva instrucción INSERT para cada fila? ¡Gracias por tu ayuda!

rexford
fuente

Respuestas:

277

Utilizar:

mysqldump --extended-insert=FALSE 

Tenga en cuenta que las inserciones múltiples serán más lentas que una inserción grande.

driis
fuente
75
--skip-extended-insert parece ser la sintaxis correcta para mí (usando mysqldump versión 10.13)
Isaac Betesh
17
Más lento, sí, pero muchos editores de texto tienen problemas con líneas de texto muy largas y si las tablas tienen una gran cantidad de datos, eso es lo que sucederá.
Jahmic
mysqldump --opt --skip-extended-inserto mysqldump --opt --extended-insert=FALSEtrabajo
Yzmir Ramirez
¡DIOS MIO! Migré a una nueva versión que causó este problema y muchos de mis scripts automatizados fallaron. Pensé que estaba jodido, pero esto parece ser una solución fácil. ¡Gracias por compartir!
Varun Verma
11
Esto es bueno porque ahora puedo hacer git diffen dos volcados de bases de datos diferentes y tener una idea clara de lo que se cambió.
Rolf
9

En las versiones más recientes se realizó un cambio en las banderas: desde la documentación:

- inserción-extendida, -e

Escriba las instrucciones INSERT utilizando la sintaxis de varias filas que incluye varias listas de VALORES. Esto da como resultado un archivo de volcado más pequeño y acelera las inserciones cuando se vuelve a cargar el archivo.

--optar

Esta opción, habilitada de forma predeterminada, es la abreviatura de la combinación de --add-drop-table --add-locks --create-options --disable-keys --extend-insert --lock-tables --quick - set-charset Ofrece una operación de volcado rápido y produce un archivo de volcado que se puede volver a cargar en un servidor MySQL rápidamente.

Debido a que la opción --opt está habilitada de manera predeterminada, solo especifica su inverso, la opción --skip-opt para desactivar varias configuraciones predeterminadas. Consulte la discusión sobre los grupos de opciones de mysqldump para obtener información sobre cómo habilitar o deshabilitar selectivamente un subconjunto de las opciones afectadas por --opt.

--skip-extended-insert

Desactivar inserción extendida

israel berko
fuente