0

3 つの別々のデータベース テーブルを同期しようとしています。私の目標は、1 つのデータベース内の任意のテーブルで更新を行うと、他のデータベースも更新されることです。目的は、3 つの別々のサイトです。db1.table にはすべてのデータがあり、db2.table と db3.table には一定量のデータがありますが、行われた変更は同期を維持し、できればリアルタイムに近い必要があります。トリガーは高速であるため、基本的に、あるテーブルから別のテーブルに SQL ステートメントを複製して、すべてを同期させることができます。

現在、私はこの方法でトリガーを使用しています:

db1.table -> 更新時にトリガーして db2.table を更新する db2.table -> 更新時にトリガーして db3.table を更新する

db1 でのみ更新する場合、これはうまく機能しますが、bd3 から db1 にループしようとすると、MySQL 再帰エラーが発生します。

「このストアド関数/トリガーを呼び出したステートメントで既に使用されているため、ストアド関数/トリガーのテーブルを更新できません。」

私のコードは、更新するものがない場合、他のテーブルを更新しないように記述されているため、複数回ループすることはありません。

トリガー以外の回避策または別の方法はありますか?

4

1 に答える 1

0

データベースの 1 つで 1 つのマスター テーブルを参照して、そこにデータを一元化できない理由はありますか?

于 2012-08-18T23:30:48.037 に答える