この図は、2つのレプリケーション・サイト(サイトAとサイトB)を示しています。サイトAでは、次の更新が実行されます。
UPDATE employees SET department_id = 20 WHERE last_name='Jones';
この図にあるemployees表では、Jones
という姓の社員のdepartment_id
が20
に更新されています。
サイトAでは、この更新が実行されると、内部トリガーが起動します。内部トリガーのコードは、次のようなコードです。
if updating update@dba1(oldargs newargs) update@dba2(oldargs newargs) if inserting insert@dba1(newargs) insert@dba2(newargs) if deleting delete@dba1(oldargs) delete@dba2(oldargs)
サイトA上の内部トリガーによって、サイトB上のパッケージが起動されます。このパッケージによってサイトBのemployees
表が更新され、Jones
という姓の社員のdepartment_id
が20
に設定されます。
このパッケージのコードは、次のようなコードです。
update(oldargs newargs) UPDATE employees ... insert(newargs) INSERT INTO employees ... delete(oldargs) DELETE FROM employees ...