Добре, мисля, че разбирам какво става. Отговорът на вашия въпрос е абсолютно голямо дада . Може да има голямо въздействие, ако деактивирате този тригер.
Причината, поради която този тригер изглежда съществува, е да се справи със ситуацията, при която стойността на първичен ключ е не предоставени във вложка във вашата таблица. Ако това се случи някъде във вашия код тяхното премахване на тригера ще прекъсне тези вмъквания.
Трябва да направите две неща.
-
Коригирайте спусъка, очевидно е счупен; поправи го:
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;
Ако използвате Oracle 11G или по-нова версия, можете да използвате това вместо това:
if :NEW.PRIVILEGE_ID is null then :NEW.PRIVILEGE_ID := PRIVILEGE_SEQ.nextval; end if;
-
Разберете дали това наистина се случва. Ако вмъкнете записи без първичен ключ, трябва да разберете защо това се случва и дали поведението е правилно. Ако сте блокирали спусъка, в противен случай поправете това. Ако никога не вмъквате записи без първичен ключ, можете да деактивирате тригера.
Най-бързият начин да разберете може да бъде да деактивирате спусъка така или иначе, но това ще счупи вашите вложки. Ако това е производствена база данни, само вие можете да кажете дали си заслужава. Аз лично не бих.