Oracle 数据库中 2 个表之间的数据同步

Data Sync between 2 tables in Oracle Database

我有 2 个表,即 table1 (id, name, address, contact_number, gender) 和 table2 (id, name, contact_number) 使用 Oracle 11g XE。

在表 1 中我有数据:(1,约翰,雅加达,123345,男性),(2,雷纳,万隆,568955,女性)。我想要基于 table1 到 table2 的数据,例如 (1, john, 123345), (2, reina, 568955).

在table1有新数据如(3, alfiano, Meda, 789654, male)后,table2不存在重复数据(john和reina),只是添加了alfiano数据值。

当我查询触发器时

select trigger_name, trigger_type, triggering_event, trigger_body from all_triggers where table_name = 'TABLE1'

在这种情况下,我有一个按钮来执行同步。但我不知道密码了。我正在使用 C#。

private void btnSync_Click(object sender, EventArgs e)
    {
        // i don't know the code
    }

如何在这些表之间同步数据? 谁能给我建议?

尝试以下触发器定义,以便自动将表 1 的数据反映到表 2 中:

create or replace trigger table1_fill_table2
after insert on table1
for each row
begin
    insert into table2
        select :new.id, :new.name, :new.contact_number
        from dual;
end;
/

但是请注意,您应该避免仅进行部分 table2 修改的代码。这大概是btnSync_Click.

有关触发器的更多信息,请参阅 Oracle 文档:

http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/triggers.htm#LNPLS020 -- 通用用法描述

http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/create_trigger.htm#LNPLS01374 -- 对于触发器定义语法