2つの挿入トリガーがあり、同じテーブルで起動し、テーブル行の内容を変更しようとすると衝突が発生するか、SQLデベロッパーがコマンドの実行を終了します。私はDBを再起動する必要があります。それを修正する方法は?私はそれらの2トリガを1トリガにマージする必要がありますか?オラクル・トリガー(衝突、デッドクロック)
execute immediate 'alter trigger trigger_name disable';
execute immediate 'alter trigger trigger_name enable';
するか、私は大きな僕が結婚を決めたワケで。..イムこの1に関する専門oppinionをしたいしてください、これが最初であるので、私は、今...トリガーの内部でトリガを使用する必要がありますか、このコマンドでfireing順序を制御するようにしてください私はPL/SQLのコーディングを行う時間。
EDIT:HEREは、私が上で動作WITCH WITHトリガーは、次のとおりです。
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が実行されますか? –
更新された回答を見て、それがより明確になることを望みますか? –