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

2193

被折叠的 条评论
为什么被折叠?



