Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


17.4.1.32 レプリケーションとトリガー

ステートメントベースレプリケーションでは、マスター上で実行されたトリガーはスレーブでも実行されます。行ベースレプリケーションでは、マスター上で実行されたトリガーはスレーブ上で実行されません。代わりに、トリガー実行によって発生するマスター上の行変更は複製され、スレーブ上で適用されます。

この動作は設計によります。行ベースレプリケーション時に、スレーブがトリガーおよびそれらによって発生する行変更を適用した場合、変更は実際にはスレーブ上で 2 回適用されるため、マスターとスレーブでデータが違ってきます。

マスターとスレーブの両方でトリガーを実行したい場合 (おそらく、マスターとスレーブでトリガーが違うため)、ステートメントベースレプリケーションを使用する必要があります。ただし、スレーブ側トリガーを有効にするために、ステートメントベースレプリケーションを排他的に使用する必要はありません。この効果が必要なステートメントでのみステートメントベースレプリケーションに切り替え、残りの時間は行ベースレプリケーションを使用することで十分です。

AUTO_INCREMENT カラムを更新するトリガー (または関数) を呼び出すステートメントは、ステートメントベースレプリケーションを使用して正しく複製されません。MySQL 5.6 はこのようなステートメントを安全でないとマークします。(Bug #45677)


User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.