0
我有一张桌子,这张桌子最多有1000行。当用户想要添加第1001行时,必须有错误。我知道我应该使用插入式触发器。我是SQL中的新人,你能帮助我吗?如何在更新触发之前更改插入触发器之前?
我的代码是:
create or replace trigger update_ext_app_serv
before update on EXTERNAL_APP_SERVICE
for each row
declare
row_count number;
old_service_id number;
new_service_trigger varchar(30);
old_service_trigger varchar(30);
begin
row_count := 0;
new_service_trigger := :NEW.TRIGGER_NAME;
old_service_trigger := :OLD.TRIGGER_NAME;
old_service_id := :OLD.SERVICE_ID;
select count(*) into row_count
from EXTERNAL_APP_PROFILE
where ORIG_ID = old_service_id
or TERM_FAILURE_RESP_ID = old_service_id
or TERM_ID = old_service_id;
if (row_count > 0) and (new_service_trigger not like old_service_trigger)
then
raise_application_error(-20706, 'Unable to update Trigger. The service is referenced at least External Application Profile.');
end if;
end;
重新标记'oracle'和基于问题 –
语法'plsql'我认为,首先,在所有你必须改变你的触发'你想要的错误消息,当毕竟insert'前有人试图插入行。 – winter
不知道这个触发器与什么有关,但它似乎是强制外键,你应该使用外键约束来做到这一点。触发器效率低下,并且在并发环境中也不起作用。 – APC