さて、私は何が起こっているのか理解できたと思います。あなたの質問への答えは絶対に大規模なはいです 。このトリガーを無効にすると、大きな影響が出る可能性があります。
このトリガーが存在するように見える理由は、主キー値がではない状況に対処するためです。 テーブルへの挿入で提供されます。これが発生した場合どこでも コード内でトリガーを削除すると、それらの挿入が壊れます。
2つのことをしなければなりません。
-
トリガーを修正してください。明らかに壊れています。修正する:
CREATE OR REPLACE TRIGGER BI_PRIVILEGE before insert on PRIVILEGE for each row begin if :NEW.PRIVILEGE_ID is null then select PRIVILEGE_SEQ.nextval into :NEW.PRIVILEGE_ID from dual; end if; end;
Oracle 11G以降を使用している場合は、代わりにこれを使用できます。
if :NEW.PRIVILEGE_ID is null then :NEW.PRIVILEGE_ID := PRIVILEGE_SEQ.nextval; end if;
-
これが実際に発生するかどうかを調べます。主キーなしでレコードを挿入する場合は、なぜこれが発生するのか、および動作が正しいかどうかを確認する必要があります。それがトリガーで立ち往生している場合は、それ以外の場合は修正します。主キーなしでレコードを挿入しない場合は、トリガーを無効にすることができます。
とにかくトリガーを無効にするのが最も簡単な方法かもしれませんが、それはあなたの挿入を壊します。これが本番データベースである場合、それが価値があるかどうかを判断できるのはあなただけです。個人的にはしません。