web-dev-qa-db-fra.com

Mysqldump ajouter une table de baisse?

Je remarque dans le Codex que l'option --add-drop-table est affichée pour la sauvegarde d'une base de données. Avant de rien foirer, cela signifie-t-il simplement que lorsque la sauvegarde est finalement importée, les tables seront écrasées si elles existent dans la base de données de destination?

Je ne veux pas laisser tomber les tables quand je les sauvegarde!

user@linux:~/files/blog> mysqldump --add-drop-table -h mysqlhostserver
 -u mysqlusername -p databasename (tablename tablename tablename) | bzip2
 -c > blog.bak.sql.bz2

Enter password: (enter your mysql password)
user@linux~/files/blog>

http://codex.wordpress.org/Backing_Up_Your_Database#Using_Straight_MySQL_Commands

9
AlxVallejo

Cela n'affecte que la sortie de votre vidage MySQL dans le fichier créé.

Ce n'est pas nécessaire. Il est simplement là pour que si vous importez le fichier de vidage créé dans une base de données contenant déjà une table du même nom, cette table sera supprimée puis ajoutée à la nouvelle. Sinon, vous obtiendrez une erreur et le fichier de vidage ne sera pas importé.

Il ajoute cette ligne avant l'instruction create table dans le fichier de vidage:

DROP TABLE IF EXISTS `tablename`;

Si vous envisagez d'importer le fichier de vidage dans une nouvelle base de données, cela n'aura pas d'importance.

7
Jake

C'est parce que la syntaxe globale ressemble à ceci:

mysql>mysqldump --opt --all-databses > all.sql

--opt est activé par défaut (ce qui implique: --add-drop-table) comme indiqué dans la documentation MySQL.

5
user2063478

Lors de la suppression de --add-drop-table dans cette syntaxe, --add-drop-table est utilisé de toute façon, car --opt est la valeur par défaut (sauf si vous utilisez --skip-opt) et --opt includes --add-drop -table. Voir ici: https://dev.mysql.com/doc/refman/5.6/en/mysqldump.html#option_mysqldump_opt

Et, comme indiqué ci-dessus, cela ne signifie pas que vos tables sont supprimées lors de la sauvegarde, mais que les commandes de suppression de tables sont incluses dans le fichier SQL, car c’est ce que vous voulez pour un dump. Vous pouvez donc importer le dump sans obtenir erreurs que les tables existent déjà.

0
Markus