策划提出需求,能否禁止对表的更新操作,首先想到的就是触发器,实际测试后脚本如下

   1、要求对表的行进行删除和更新的限制:

create or replace trigger noudeleteorupdatefortabla_A
  before update or delete
  on table_a
  for each row
declare
  -- local variables here
begin
 if updating  then
  raise_application_error(-20000,'不能对table_A表进行update操作');
  elsif deleting then
   raise_application_error(-20000,'不能对table_A表进行delete操作'); 
  end if;
end;



2、要求对表的字段进行删除和更新的限制:

create or replace trigger nouDeloUpFortabla_A_object_id
  before update or delete
  on table_a
  for each row
declare
  -- local variables here
begin
 if updating('OBJECT_ID')  then
  raise_application_error(-20000,'不能对table_A表的object_id进行update操作');
 END IF;
 if DELETING then  ----删除操作是对行的,不能指定字段
   raise_application_error(-20000,'不能对table_A表进行delete操作');
 END IF;
end;

标签: none

添加新评论