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.