2016-12-22 2 views
0

Я использую mysqldump для обмена дампами баз данных, но у меня проблема с триггерами. Команда не добавляет «падение» или «заменить» строки с триггерами, что делает людей, которые уже добавлены ранее дамп с таким же вызывает имена, имеющие ошибку:Mysqldump без триггеров

ERROR 1359 (HY000) at line 1420: Trigger already exists 

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

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

+0

Один из способов - использовать метод rhinoceros: вручную отредактировать дамп и добавить IF EXISTS, где вы найдете синтаксис CREATE TRIGGER – Mihai

ответ

0

Вы не указываете версию. mysqldump 5.6 и выше имеет опцию --add-drop-trigger.

+0

Вы правы, я использую mysql 5.7, и опция, похоже, определяет, что мне нужно, но я ' m все еще имеет ту же ошибку, когда я использую его –

+0

@ Jean-LoupBecquet, который не складывается. Однако это может быть объяснено, если вы ранее использовали одно и то же имя триггера *, но в другой таблице. Имена триггеров * должны быть уникальными для всех таблиц в рамках одной схемы, то есть вы не можете иметь триггеры с тем же именем в обеих таблицах t1 и t2, а mysqldump не может предвидеть, что может существовать в целевой. –

Смежные вопросы