web-dev-qa-db-fra.com

MySQLDump une instruction INSERT pour chaque ligne de données

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

Je reçois des instructions INSERT telles que:

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');

Est-il possible de dire à "mysqldump" de créer une nouvelle instruction INSERT pour chaque ligne? Merci de votre aide!

155
rexford

tilisez:

mysqldump --extended-insert=FALSE 

Sachez que plusieurs insertions seront plus lentes qu'une grosse insertion.

243
driis

Dans les versions plus récentes, les drapeaux ont été modifiés: à partir de la documentation:

--extended-insert, -e

Écrivez des instructions INSERT en utilisant une syntaxe à plusieurs lignes qui inclut plusieurs listes VALUES. Cela se traduit par 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 permet une opération de vidage rapide et génère un fichier de vidage pouvant être rechargé rapidement sur un serveur MySQL.

Étant donné que l'option --opt est activée par défaut, vous spécifiez uniquement sa conversion, l'option --skip-opt permet de désactiver plusieurs paramètres par défaut. Consultez 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 des options affectées par --opt.

--skip-extended-insert

Désactiver le insert étendu

3
israel berko