MySQLDump di un'istruzione INSERT per ogni riga di dati


179

con la seguente dichiarazione:

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

Ricevo istruzioni INSERT come le seguenti:

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

Ciò di cui ho bisogno nel mio caso è qualcosa del genere:

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

C'è un modo per dire a "mysqldump" di creare una nuova istruzione INSERT per ogni riga? Grazie per l'aiuto!

Risposte:


279

Uso:

mysqldump --extended-insert=FALSE 

Tenere presente che più inserti saranno più lenti di un inserto grande.


75
--skip-extended-insert sembra essere la sintassi corretta per me (usando mysqldump versione 10.13)
— Isaac Betesh

17
Più lento, sì, ma molti editor di testo hanno problemi con righe di testo estremamente lunghe e se le tabelle contengono un'enorme quantità di dati, è quello che accadrà.
— Jahmic,

mysqldump --opt --skip-extended-inserto mysqldump --opt --extended-insert=FALSElavoro
— Yzmir Ramirez,

OH MIO DIO! Sono passato a una nuova versione che ha causato questo problema e molti dei miei script automatici non hanno funzionato. Pensavo di essere fregato ma questa sembra essere una soluzione semplice. Grazie per la condivisione!
— Varun Verma,

11
Questo è bello perché ora posso fare un git diffdump di due database diversi e avere un quadro chiaro di ciò che è stato modificato.
— Rolf,

9

Nelle versioni più recenti è stata apportata la modifica ai flag: dalla documentazione:

--extended-insert, -e

Scrivi istruzioni INSERT utilizzando la sintassi a più righe che include diversi elenchi VALUES. Ciò si traduce in un file di dump più piccolo e accelera gli inserimenti quando il file viene ricaricato.

--optare

Questa opzione, abilitata di default, è una scorciatoia per la combinazione di --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick - set-charset. Fornisce un'operazione di dump veloce e produce un file di dump che può essere ricaricato rapidamente in un server MySQL.

Poiché l'opzione --opt è abilitata per impostazione predefinita, si specifica solo il contrario, l'opzione --skip-opt per disattivare diverse impostazioni predefinite. Vedi la discussione sui gruppi di opzioni mysqldump per informazioni su come abilitare o disabilitare selettivamente un sottoinsieme delle opzioni interessate da --opt.

--skip-extended-insert

Disattiva l'inserto esteso

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.