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!

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.


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.