У меня есть две таблицы2 спусковые запуск Sametime
user_salary
-------------------------
| user_id | salary_p |
-------------------------
| 1 | 100 |
| 2 | 200 |
-------------------------
user_p_salary
------------------------
| user_id | salary_c |
-------------------------
| 1 | 100 |
| 2 | 200 |
-------------------------
user_salary используется через пользовательский интерфейс, и имеет следующие триггером:
create or replace trigger t$user_salary_aiu
after insert or update of salary_p
on user_salary
for each row
begin
update user_p_salary t
set t.salary_c = :new.salary_p,
where t.user_id = :new.user_id
end t$user_salary_aiu;
user_p_salary g ЭТС данные через интеграцию и имеет следующий код:
create or replace trigger t$user_p_salary_aiu
after insert or update of salary_c
on user_p_salary
for each row
begin
update user_salary t
set t.salary_p = :new.salary_c,
where t.user_id = :new.user_id
end t$user_p_salary_aiu;
Теперь проблема заключается в том, что если одна из таблицы получает данные, то он выполняет свои триггерные и обновляет данные в другой таблице. Однако также запускается триггер в другой таблице, который похож на цикл триггера.
Единственный способ - использовать немедленный «alter triggername disable», но это, похоже, вообще не работает в триггерах. Есть идеи?
Заранее спасибо :-)
Я довольно удивлен, что вы не получаете ошибку ORA-04091. Вы используете автономные транзакции? –
Да, я получаю ошибку ORA-04901 – Jaanna