trigger updating函数带参数用法;

本文探讨了SQL中使用触发器对特定列进行更新操作的限制,通过创建触发器来阻止更新COUNT_列,展示了错误信息及触发器执行过程。

1.表

SQL> desc a

Name   Type    Nullable Default Comments
------ ------- -------- ------- --------
ID_    INTEGER Y                         
COUNT_ INTEGER Y                         

 

2.建立触发器

create or replace trigger tri_a
before delete or update or delete on a
for each row
declare
  errno  number;
  errmsg varchar2(30);
  wrong_error exception;
begin
  if updating('COUNT_') then
    errno  := '-20030';
    errmsg := '哈哈,不允许更新此列';
    raise wrong_error;
  end if;
exception
  when wrong_error then
    raise_application_error(errno, errmsg);
end;

----------------------


3.进行update操作

SQL> select * from a;
 
                                    ID_                                  COUNT_
--------------------------------------- ---------------------------------------
                                      1                                      10
                                      3                                       6
                                      2                                       4
                                      3                                       4
                                      5                                       5
 

SQL> update a set count_=99 where id_=5;
 
update a set count_=99 where id_=5
 
ORA-20030: 哈哈,不允许更新此列
ORA-06512: at "AIKI.TRI_A", line 13
ORA-04088: error during execution of trigger 'AIKI.TRI_A'
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值