我有两个表(A表和B表),机构完全相同:A 表建立触发器
当insert into A(id,name) values('1','zhangsan'); 我只想将name=zhangsan的时候将insert语句插入到B表中而A表不执行操作这个触发器应该怎么实现呢?
如:
if :nve.name=‘zhangsan' then
insert into B(id,name) values(:nve.id,:nve.name);
end if;
可是像我这么写这两个表都有数据呀,我只想让B表中有数据而A表没有,这个触发器应该怎么写呢,谢谢给位了
当insert into A(id,name) values('1','zhangsan'); 我只想将name=zhangsan的时候将insert语句插入到B表中而A表不执行操作这个触发器应该怎么实现呢?
如:
if :nve.name=‘zhangsan' then
insert into B(id,name) values(:nve.id,:nve.name);
end if;
可是像我这么写这两个表都有数据呀,我只想让B表中有数据而A表没有,这个触发器应该怎么写呢,谢谢给位了
解决方案 »
- PLSQL developer从ORACLE中导出的TSV文件中有空行
- ora-12514:TNS:listener does not currently know of service requested in connect
- 将文件导入到数据表中
- 无法连接oracle,请高手指点
- 初学Oracle,请高手指教!
- exp导出为何不能成功?
- 请教高手,Oracle9i在linux下安装的时候产生的文件不能写入问题
- 很简单的问题,这个sql语句怎么用rownum
- 我的oracle建库脚本以前在oracle上运行没有问题,我在另外一个oracle上跑是却老是报错,但并不是所有的都错,请问怎么回事啊?
- ORACLE FORMS AND REPORTS 安裝問題
- c++与orale的赋值的问题?
- oracle SGA,PGA 内存分配,急.....
create table a (id number, name varchar2(30));
create table b (id number, name varchar2(30));create view va as
select id, name from a;create or replace trigger trig_va
instead of insert on va
for each row
begin
if :new.name = 'zhangsan' then
insert into b values (:new.id, :new.name);
else
insert into a values (:new.id, :new.name);
end if;
end;insert into va values (1, 'zhangsan');
insert into va values (2, 'lisi');select * from a;
ID NAME
---------- ---------------------------------------------
2 lisi select * from b;
ID NAME
---------- ---------------------------------------------
1 zhangsan 這是ora-04091 table is mutating trigger function may not see it的問題,比較難處理。
現在還在研究不用視圖能否實現。
create table b (id number, name varchar2(30));create view va as
select id, name from a;create or replace trigger trig_va
instead of insert on va
for each row
begin
if :new.name = 'zhangsan' then
insert into b values (:new.id, :new.name);
else
insert into a values (:new.id, :new.name);
end if;
end;