Okay, jeg tror, jeg forstår, hvad der foregår. Svaret på dit spørgsmål er et absolut massivt ja . Det kan have stor indflydelse, hvis du deaktiverer denne trigger.
Grunden til, at denne trigger synes at eksistere, er for at håndtere situationen, hvor en primær nøgleværdi ikke er leveres på en indsats i dit bord. Hvis dette sker hvor som helst i din kode, hvis du fjerner triggeren, vil disse indsættelser brydes.
Du skal gøre to ting.
-
Ret aftrækkeren, den er åbenbart ødelagt; rette det:
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;
Hvis du bruger Oracle 11G eller nyere, kan du bruge dette i stedet:
if :NEW.PRIVILEGE_ID is null then :NEW.PRIVILEGE_ID := PRIVILEGE_SEQ.nextval; end if;
-
Find ud af, om dette rent faktisk sker. Hvis du indsætter poster uden en primær nøgle, skal du finde ud af, hvorfor dette sker, og om adfærden er korrekt. Hvis det er du sidder fast med aftrækkeren, ellers fiks det. Hvis du aldrig indsætter poster uden en primær nøgle, kan du deaktivere triggeren.
Den hurtigste måde at finde ud af det kan være at deaktivere triggeren alligevel, men det ville knække dine indsatser. Hvis dette er en produktionsdatabase, kan du kun se, om det er det værd. Det ville jeg personligt ikke.