Okej, jag tror jag förstår vad som händer. Svaret på din fråga är ett absolut ja . Det kan bli en stor inverkan om du inaktiverar den här utlösaren.
Anledningen till att den här utlösaren verkar finnas är för att hantera situationen där ett primärt nyckelvärde inte är tillhandahålls på en insats i ditt bord. Om detta inträffar någonstans i din kod kommer de att bryta inläggen om de tar bort triggern.
Du måste göra två saker.
-
Korrigera avtryckaren, den är uppenbarligen trasig; fixa 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;
Om du använder Oracle 11G eller senare kan du använda detta istället:
if :NEW.PRIVILEGE_ID is null then :NEW.PRIVILEGE_ID := PRIVILEGE_SEQ.nextval; end if;
-
Ta reda på om detta verkligen händer. Om du infogar poster utan en primärnyckel måste du ta reda på varför detta händer och om beteendet är korrekt. Om det är du har fastnat med avtryckaren, annars fixa det. Om du aldrig infogar poster utan en primärnyckel kan du inaktivera triggern.
Det snabbaste sättet att ta reda på det kan vara att inaktivera triggern ändå, men det skulle bryta dina insatser. Om detta är en produktionsdatabas kan bara du se om det är värt det. Jag skulle personligen inte göra det.