Ok, penso di aver capito cosa sta succedendo. La risposta alla tua domanda è assolutamente un enorme sì . Potrebbe esserci un grande impatto se disabiliti questo attivatore.
Il motivo per cui questo trigger sembra esistere è per affrontare la situazione in cui un valore di chiave primaria non fornito su un inserto nella tua tabella. Se ciò si verifica ovunque nel tuo codice la rimozione del trigger interromperà quegli inserti.
Devi fare due cose.
-
Correggi il grilletto, ovviamente è rotto; aggiustalo:
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;
Se stai utilizzando Oracle 11G o versioni successive, puoi invece utilizzare questo:
if :NEW.PRIVILEGE_ID is null then :NEW.PRIVILEGE_ID := PRIVILEGE_SEQ.nextval; end if;
-
Scopri se questo accade davvero. Se inserisci record senza una chiave primaria, devi scoprire perché ciò accade e se il comportamento è corretto. Se sei bloccato con il grilletto, altrimenti risolvilo. Se non inserisci mai record senza una chiave primaria, puoi disabilitare il trigger.
Il modo più rapido per scoprirlo potrebbe essere disabilitare comunque il trigger, ma romperebbe i tuoi inserti. Se questo è un database di produzione solo tu puoi dire se ne vale la pena. Personalmente non lo farei.