Oké, ik denk dat ik snap wat er aan de hand is. Het antwoord op je vraag is een absoluut massaal ja . Er kan een grote impact zijn als u deze trigger uitschakelt.
De reden dat deze trigger lijkt te bestaan, is om de situatie aan te pakken waarin een primaire sleutelwaarde niet is geleverd op een inzetstuk in uw tafel. Als dit overal gebeurt in uw code zal het verwijderen van de trigger die invoegingen breken.
Je moet twee dingen doen.
-
Corrigeer de trekker, deze is duidelijk kapot; repareer het:
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;
Als u Oracle 11G of hoger gebruikt, kunt u dit in plaats daarvan gebruiken:
if :NEW.PRIVILEGE_ID is null then :NEW.PRIVILEGE_ID := PRIVILEGE_SEQ.nextval; end if;
-
Ga na of dit ook daadwerkelijk gebeurt. Als u records zonder primaire sleutel invoegt, moet u weten waarom dit gebeurt en of het gedrag correct is. Als dit het geval is, zit je vast aan de trigger, anders los je dat op. Als u nooit records zonder een primaire sleutel invoegt, kunt u de trigger uitschakelen.
De snelste manier om erachter te komen is misschien om de trigger toch uit te schakelen, maar het zou je inserts breken. Als dit een productiedatabase is, kunt u alleen zien of het de moeite waard is. Ik zou het persoonlijk niet doen.