[#] Патчим mysqldump в домашних условиях
habrabot(difrex,1) — All
2015-10-10 13:00:11


![image][1] Бекапы это хорошо, а еще лучше когда они работают так как надо когда они нужны. На одном из проектов понадобилось восстановить дамп из 745 триггеров и накатить их на рабочую MySQL базу. MySQL позволяет использовать любые имена триггеров, в том числе с использованием точек (_например_: `analitica.cron.indeg.y.run.a_insert`). А **mysqldump** при создании дампа не учитывает это обстоятельство и добавляет конструкцию для их дропа следующего вида:



Подвох ожидает при попытке эти дампы накатить на базу где эти триггеры уже созданы. С точки зрения MySQL этот запрос не дропнет триггер, потому что не найдет триггер с таким именем. Для корректной работы имя триггера должно быть заключено в апострофы. [Подробности][2]

[1]: https://habrastorage.org/getpro/habr/post_images/c55/5ba/126/c555ba1264e7a39ba30129db92fce36d.png
[2]: http://habrahabr.ru/post/268569/#habracut