我有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,男性),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
}
如何在这些表之间同步数据? 谁能建议我?
答案 0 :(得分:0)
尝试以下触发器定义,以便自动将table1的数据反映到table2中:
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 - 用于触发器定义语法