it-swarm.com.de

MySQLDump eine INSERT-Anweisung für jede Datenzeile

mit der folgenden Aussage:

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

Ich erhalte INSERT-Anweisungen wie die folgenden:

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

Was ich in meinem Fall brauche, ist ungefähr so:

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

Gibt es eine Möglichkeit, "mysqldump" anzuweisen, für jede Zeile eine neue INSERT-Anweisung zu erstellen? Danke für Ihre Hilfe!

155
rexford

Verwenden Sie:

mysqldump --extended-insert=FALSE 

Beachten Sie, dass mehrere Einfügungen langsamer sind als eine große Einfügung.

243
driis

In neueren Versionen wurden Änderungen an den Flags vorgenommen: Aus der Dokumentation:

- Extended-Insert, -e

Schreiben Sie INSERT-Anweisungen mit mehrzeiliger Syntax, die mehrere VALUES-Listen enthält. Dies führt zu einer kleineren Speicherauszugsdatei und beschleunigt Einfügungen, wenn die Datei neu geladen wird.

--opt

Diese standardmäßig aktivierte Option ist eine Abkürzung für die Kombination von --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick - set-charset. Es gibt einen schnellen Dump-Vorgang und erzeugt eine Dump-Datei, die schnell auf einen MySQL-Server geladen werden kann.

Da die Option --opt standardmäßig aktiviert ist, geben Sie nur die Umkehrung an, die Option --skip-opt, um mehrere Standardeinstellungen zu deaktivieren. In der Diskussion zu mysqldump-Optionsgruppen finden Sie Informationen zum selektiven Aktivieren oder Deaktivieren einer Teilmenge der von --opt betroffenen Optionen.

- Skip-Extended-Insert

Extended-Insert ausschalten

3
israel berko