Oke, saya pikir saya mengerti apa yang terjadi. Jawaban atas pertanyaan Anda adalah sangat besar ya . Akan ada dampak besar jika Anda menonaktifkan pemicu ini.
Alasan pemicu ini tampaknya ada adalah untuk menghadapi situasi di mana nilai kunci utama tidak disediakan pada sisipan ke dalam tabel Anda. Jika ini terjadi di mana saja dalam kode Anda, menghapus pemicu akan merusak sisipan tersebut.
Anda harus melakukan dua hal.
-
Perbaiki pemicunya, itu jelas rusak; perbaiki:
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;
Jika Anda menggunakan Oracle 11G atau lebih tinggi, Anda dapat menggunakan ini sebagai gantinya:
if :NEW.PRIVILEGE_ID is null then :NEW.PRIVILEGE_ID := PRIVILEGE_SEQ.nextval; end if;
-
Cari tahu apakah ini benar-benar terjadi. Jika Anda memasukkan catatan tanpa kunci utama, Anda perlu mencari tahu mengapa ini terjadi dan apakah perilakunya benar. Jika Anda terjebak dengan pelatuk, jika tidak perbaiki itu. Jika Anda tidak pernah memasukkan catatan tanpa kunci utama maka Anda dapat menonaktifkan pemicunya.
Cara tercepat untuk mengetahuinya mungkin dengan menonaktifkan pemicunya, tetapi itu akan merusak sisipan Anda. Jika ini adalah basis data produksi, Anda dapat mengetahui apakah itu layak. Saya pribadi tidak akan melakukannya.