MySQLDump une instruction INSERT pour chaque ligne de données


178

avec la déclaration suivante:

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

J'obtiens des instructions INSERT comme celles-ci:

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

Ce dont j'ai besoin dans mon cas, c'est quelque chose comme ceci:

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

Existe-t-il un moyen de dire à "mysqldump" de créer une nouvelle instruction INSERT pour chaque ligne? Merci de votre aide!

Réponses:


277

Utilisation:

mysqldump --extended-insert=FALSE 

Sachez que plusieurs inserts seront plus lents qu'un gros insert.


75
--skip-extended-insert semble être la syntaxe correcte pour moi (en utilisant mysqldump version 10.13)
Isaac Betesh

17
Plus lent, oui, mais beaucoup d'éditeurs de texte ont des problèmes avec des lignes de texte extrêmement longues et si les tableaux contiennent une énorme quantité de données, c'est ce qui se passera.
Jahmic

mysqldump --opt --skip-extended-insertou mysqldump --opt --extended-insert=FALSEtravail
Yzmir Ramirez

OMG! J'ai migré vers une nouvelle version, ce qui a provoqué ce problème et l'échec d'un grand nombre de mes scripts automatisés. Je pensais que j'étais foutu mais cela semble être une solution facile. Merci d'avoir partagé!
Varun Verma

11
C'est bien car maintenant je peux faire un git diffsur deux vidages de base de données différents et avoir une image claire de ce qui a été changé.
Rolf

9

Dans les versions plus récentes, des modifications ont été apportées aux indicateurs: à partir de la documentation:

--extended-insert, -e

Écrivez des instructions INSERT à l'aide d'une syntaxe à plusieurs lignes qui comprend plusieurs listes de VALEURS. Cela entraîne un fichier de vidage plus petit et accélère les insertions lorsque le fichier est rechargé.

--opter

Cette option, activée par défaut, est un raccourci pour la combinaison de --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick - set-charset. Il donne une opération de vidage rapide et produit un fichier de vidage qui peut être rechargé rapidement dans un serveur MySQL.

Étant donné que l'option --opt est activée par défaut, vous ne spécifiez que son inverse, l'option --skip-opt pour désactiver plusieurs paramètres par défaut. Voir la discussion sur les groupes d'options mysqldump pour plus d'informations sur l'activation ou la désactivation sélective d'un sous-ensemble d'options affectées par --opt.

--skip-extended-insert

Désactiver l'insertion prolongée

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.