Spec-Zone .ru
спецификации, руководства, описания, API

16.4.1.31. Репликация и Триггеры

С основанной на операторе репликацией триггеры, выполняемые на ведущем устройстве также, выполняются на ведомом устройстве. С построчной репликацией триггеры, выполняемые на ведущем устройстве, не выполняются на ведомом устройстве. Вместо этого строка изменяется на ведущем устройстве, следующем из триггерного выполнения, тиражируются и применяются на ведомое устройство.

Это поведение проектом. Если бы под построчной репликацией ведомое устройство, примененное триггеры так же как изменения строки, вызванные ими, изменения были бы в действительности применены дважды на ведомом устройстве, приводя к различным данным на ведущем устройстве и ведомом устройстве.

Если Вы хотите, чтобы триггеры выполнились и на ведущем устройстве и на ведомом устройстве — возможно, потому что у Вас есть различные триггеры на ведущем устройстве и ведомом устройстве — следует использовать основанную на операторе репликацию. Однако, чтобы включить триггерам ведомой стороны, не необходимо использовать основанную на операторе репликацию исключительно. Достаточно переключиться на основанную на операторе репликацию только для тех операторов, где Вы хотите этот эффект, и использовать остальную часть построчной репликации времени.

Оператор, вызывающий триггер (или функция), который вызывает обновление к AUTO_INCREMENT столбец не тиражируется, правильно используя основанную на операторе репликацию. MySQL 5.7 отмечает такие операторы как опасные. (Ошибка #45677)