Okay, ich glaube, ich verstehe, was los ist. Die Antwort auf Ihre Frage ist ein absolut massives Ja . Es kann große Auswirkungen haben, wenn Sie diesen Auslöser deaktivieren.
Der Grund, warum dieser Auslöser zu existieren scheint, ist die Situation, in der ein Primärschlüsselwert nicht ist auf einem Einsatz in Ihrem Tisch bereitgestellt. Wenn dies irgendwo auftritt In Ihrem Code wird das Entfernen des Triggers diese Einfügungen unterbrechen.
Sie müssen zwei Dinge tun.
-
Korrigieren Sie den Abzug, er ist offensichtlich kaputt; beheben:
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;
Wenn Sie Oracle 11G oder höher verwenden, können Sie stattdessen Folgendes verwenden:
if :NEW.PRIVILEGE_ID is null then :NEW.PRIVILEGE_ID := PRIVILEGE_SEQ.nextval; end if;
-
Überlegen Sie, ob dies tatsächlich der Fall ist. Wenn Sie Datensätze ohne Primärschlüssel einfügen, müssen Sie herausfinden, warum dies geschieht und ob das Verhalten korrekt ist. Wenn dies der Fall ist, stecken Sie mit dem Auslöser fest, andernfalls beheben Sie das. Wenn Sie niemals Datensätze ohne Primärschlüssel einfügen, können Sie den Trigger deaktivieren.
Der schnellste Weg, dies herauszufinden, besteht möglicherweise darin, den Trigger trotzdem zu deaktivieren, aber dies würde Ihre Inserts beschädigen. Wenn es sich nur um eine Produktionsdatenbank handelt, können Sie feststellen, ob es sich lohnt. Ich persönlich würde es nicht tun.