MySQLDump eine INSERT-Anweisung für jede Datenzeile


177

mit folgender 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 folgt:

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!

Antworten:


276

Verwenden:

mysqldump --extended-insert=FALSE 

Beachten Sie, dass mehrere Einsätze langsamer sind als ein großer Einsatz.


75
- Skip-Extended-Insert scheint die richtige Syntax für mich zu sein (mit mysqldump Version
10.13

17
Langsamer, ja, aber viele Texteditoren haben Probleme mit sehr langen Textzeilen, und wenn die Tabellen eine große Datenmenge enthalten, wird dies passieren.
Jahmic

mysqldump --opt --skip-extended-insertoder mysqldump --opt --extended-insert=FALSEarbeiten
Yzmir Ramirez

OH MEIN GOTT! Ich habe auf eine neue Version migriert, die dieses Problem verursacht hat, und viele meiner automatisierten Skripte sind fehlgeschlagen. Ich dachte, ich wäre geschraubt, aber das scheint eine einfache Lösung zu sein. Danke für das Teilen!
Varun Verma

11
Das ist schön, denn jetzt kann ich git diffzwei verschiedene Datenbank-Dumps erstellen und habe ein klares Bild davon, was geändert wurde.
Rolf

9

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 das Einfügen, wenn die Datei erneut 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 bietet eine schnelle Dump-Operation und erzeugt eine Dump-Datei, die schnell auf einen MySQL-Server neu 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. Informationen zum selektiven Aktivieren oder Deaktivieren einer Teilmenge der von --opt betroffenen Optionen finden Sie in der Diskussion der mysqldump-Optionsgruppen.

- Skip-Extended-Insert

Extended-Insert ausschalten

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.