create table jhmxb(a number,b number,c number);insert into jhmxb values (1,2,3);触发器
create or replace trigger t_jh_cb
AFTER update of a on jhmxb
for each row
begin
if updating then
update jhmxb set c=0 where a=:new.a;
end if;
end;就是A字段更新的时候,触发器就把C字段更新为0,
编译可以通过,但是不update a字段的时候就提示触发器不能读他,
update jhmxb set c=0 where a=:new.a;这个不能这么写?
请问各位这个这么写?
就是update一个字段的时候,触发器同时修改同一个表的另一个字段?
create or replace trigger t_jh_cb
AFTER update of a on jhmxb
for each row
begin
if updating then
update jhmxb set c=0 where a=:new.a;
end if;
end;就是A字段更新的时候,触发器就把C字段更新为0,
编译可以通过,但是不update a字段的时候就提示触发器不能读他,
update jhmxb set c=0 where a=:new.a;这个不能这么写?
请问各位这个这么写?
就是update一个字段的时候,触发器同时修改同一个表的另一个字段?
解决方案 »
- Ghost恢复系统后,出现ORA-01219:数据库未打开错误
- 使用ORACLE的C/S系统发布问题。
- oracle无法解析主机名?
- oracle8i中重启后management serve就不能用了,为何?
- 为什么我每次启动机器时要关闭OracleOraHome81clientcache服务和OracleOraHome81ManagermentServer服务,然后再重新启动才能进OEM控制台
- LRU 详解??
- 个人学习ORACLE,单机可以做练习吗???
- 如何获得当前连接oracle的session id
- 求助,关于统计的一句sql语句。
- 关于主子表更新的问题
- 这个SQL列转行怎么写?
- oracle 定义存储过程 怎样让参数非空?
create or replace trigger t_jh_cb
BEFORE update of a on jhmxb
for each row
begin
if updating then
:NEW.c:=0;
end if;
END;
create or replace trigger t_jh_cb
before update of a on jhmxb
for each row
begin
if updating then
:new.c :=0;
end if;
end;
/
楼上几位已经给出答案了,如果是有其他情况可以另外讨论。
create or replace trigger t_trigger
before update on user1
for each row
begin
if :new.id=1 then
:new.name:=10;
Elsif :new.id=2 then
:new.name:=20;
Elsif :new.id=3 then
:new.name:=30;
end if;
end;