Dobře, myslím, že chápu, co se děje. Odpověď na vaši otázku je naprosto masivní ano . Pokud tento spouštěč deaktivujete, může to mít velký dopad.
Důvod, proč se zdá, že tento spouštěč existuje, je řešit situaci, kdy hodnota primárního klíče není poskytnuto na vložce do vašeho stolu. Pokud k tomu dojde kdekoli ve vašem kódu odstraněním spouštěče tyto vložky přerušíte.
Musíte udělat dvě věci.
-
Opravte spoušť, je zjevně rozbitá; opravit:
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;
Pokud používáte Oracle 11G nebo vyšší, můžete místo toho použít toto:
if :NEW.PRIVILEGE_ID is null then :NEW.PRIVILEGE_ID := PRIVILEGE_SEQ.nextval; end if;
-
Zjistěte, zda se to skutečně děje. Pokud vložíte záznamy bez primárního klíče, musíte zjistit, proč k tomu dochází a zda je chování správné. Pokud ano, uvízli jste u spouště, jinak to opravte. Pokud nikdy nevložíte záznamy bez primárního klíče, můžete spouštěč deaktivovat.
Nejrychlejším způsobem, jak to zjistit, může být stejně deaktivovat spoušť, ale rozbilo by to vaše vložky. Pokud se jedná o produkční databázi, pouze vy můžete říci, zda to stojí za to. Osobně bych ne.