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