Mysqldump добавить таблицу удаления?

10

В Кодексе я заметил, что для резервного копирования базы данных отображается параметр --add-drop-table. Прежде чем я что-то напортачу, означает ли это, что когда в конечном итоге будет импортирована резервная копия, таблицы будут перезаписаны, если они существуют в целевой базе данных?

Я не хочу бросать столы, когда я их резервирую!

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

AlxVallejo
источник

Ответы:

10

Это влияет только на вывод вашего дампа MySQL в файле, который создается.

Это не обязательно. Это просто так, что если вы импортируете созданный файл дампа в базу данных, в которой уже есть таблица с тем же именем, она удалит эту таблицу, а затем добавит новую таблицу на ее место. В противном случае вы получите ошибку, и файл дампа не будет импортирован.

Он добавляет эту строку перед оператором создания таблицы в файле дампа:

DROP TABLE IF EXISTS `tablename`;

Если вы планируете импортировать файл дампа в новую базу данных, это не имеет значения.

Джейк
источник
Вы знаете, что интересно то, что даже если я использую дамп без опции add-drop-table в существующей базе данных WP, он также работает нормально.
AlxVallejo
5

Это потому, что общий синтаксис выглядит примерно так:

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

--optвключен по умолчанию (что подразумевает:), --add-drop-tableкак указано в документации MySQL.

user2063478
источник
0

При удалении --add-drop-table в этом синтаксисе, --add-drop-table используется в любом случае, потому что --opt используется по умолчанию (если вы не используете --skip-opt), а --opt включает --add-drop -Таблица. Смотрите здесь: https://dev.mysql.com/doc/refman/5.6/en/mysqldump.html#option_mysqldump_opt

И, как указано выше, это не означает, что ваши таблицы отбрасываются при резервном копировании, но команды для удаления таблиц включены в файл sql, потому что это то, что вы хотите для дампа, так что вы можете импортировать дамп без получения ошибки в том, что таблицы уже существуют.

Markus
источник