동일한 테이블에서 실행되는 두 개의 삽입 트리거가 있으며 테이블 행 내용을 변경하려고 시도한 다음 충돌이 발생하거나 SQL 개발자가 명령 실행을 끝내고 그럼 내가 DB를 다시 시작해야합니다. 어떻게 고칠 수 있니? 내가 2 트리거를 1 트리거로 병합해야합니까?오라클 트리거 (충돌 및 데드 클럭) 발생
execute immediate 'alter trigger trigger_name disable';
execute immediate 'alter trigger trigger_name enable';
또는 내가 큰 dilema에서 .. 메신저 이것에 대한 전문가 oppinion를 원하는주십시오 처음이기 때문에 내가 지금 .. 트리거 내부 트리거를 사용한다 : 또는이 명령을 fireing 순서를 제어하려고한다 나는 PL/SQL 코딩을 할 시간.
편집 :
create or replace
TRIGGER TRG_PROCED_SN_INS_CENA
AFTER INSERT ON STAVKA_NARUDZBENICE
FOR EACH ROW
DECLARE
pragma autonomous_transaction;
sifra_narudzbenice NUMBER;
BEGIN
paket_sn_sifnar.sifra_narudzbenice := :NEW.sifra_narudzbenice;
pStavkaNarudzbeniceInsert(paket_sn_sifnar.sifra_narudzbenice);
COMMIT;
END;
/
create or replace
TRIGGER TRG_SN_INS_UPD_NAZIV
AFTER INSERT ON Stavka_narudzbenice
FOR EACH ROW
FOLLOWS TRG_PROCED_SN_INS_CENA
DECLARE
v_naziv_proizvoda VARCHAR2(25);
v_cena NUMBER;
BEGIN
SELECT naziv_proizvoda INTO v_naziv_proizvoda
FROM proizvod
WHERE sifra_proizvoda=:NEW.sifra_proizvoda;
SELECT cena INTO v_cena
FROM stavka_kataloga
WHERE sifra_proizvoda=:NEW.sifra_proizvoda;
UPDATE stavka_narudzbenice
SET naziv_proizvoda = v_naziv_proizvoda, cena = v_cena WHERE sifra_proizvoda =:NEW.sifra_proizvoda;
END;
/
참으로 11g 데이터베이스를 사용하므로 트리거 내부에서 트리거가 실행됩니까? –
또는 트리거 EMP가 실행 완료된 후 trg1이 실행됩니까? –
업데이트 된 답변보기, 명확 해 주시기 바랍니다. –