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