Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.15;
Скачать: CL | DM;

Вниз

ORA-04091- ошибка в ORACLE,кто решал такую проблему помогите пож.   Найти похожие ветки 

 
KMZ   (2002-07-26 08:01) [0]

Создал триггер который реагирует на изменения в таблице users,
и добавляет его данные в другую таблицу,
но при добавлений или изменеий выходит сообщение ORA-04091
-------------------------------------------
"table is mutating triger/function may not see it"
---------------------------------------------
create or replace trigger sa.USERS
before update or insert or delete
on sa.USERS
FOR EACH ROW

Declare
Begin
Insert into sa.USER2(id,fname,lname,phone)
select id,FNAME,LNAME,PHONE from sa.USERS;

End;
-------------------------------------------------
Кто решал данную пробему помогите пож-ста,
всем заранее спасибо.


 
dimis   (2002-07-26 08:32) [1]

Insert into sa.USER2(id,fname,lname,phone)
values(new.id,new.FNAME,new.LNAME,new.PHONE)


 
Sergey13   (2002-07-26 08:56) [2]

2KMZ (26.07.02 08:01)
Все правильно. Типичный пример мутирующей таблицы. Т.е. в момент когда USERS изменяется и изменения еще не закреплены ты пытаешься ее селектить => что твой запрос вернет - непресказуемо. А зачем ты на каждое изменение USERS пишешь ВСЕ записи из нее в USERS2. Странное поведние. Что за задача? Если ты хотел записать туда старые или новые значения то и пиши тогда OLD.id или NEW.Fname и т.д.... Если нет то надо в любом случае задачу смотреть и логику переделывать.


 
MishGan   (2002-07-26 09:58) [3]

http://ehcap.narod.ru/development.htm


 
Лёик   (2002-07-26 10:51) [4]

2KMZ
Всё уже обяснили, хочу добавить тока что если ты в User2 дублируешь данные или ведёшь статистику по User то лучше делать тригер не before, а after update or insert or delete...
Тогда и
Insert into sa.USER2(id,fname,lname,phone)
select id,FNAME,LNAME,PHONE from sa.USERS;





 
KMZ   (2002-07-26 13:50) [5]

Ребята всем спасибо разобрался!



Страницы: 1 вся ветка

Текущий архив: 2002.08.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
4-48368
_Antiox_
2002-06-10 11:12
2002.08.15
COM. Сервера Автоматизации 1.


14-48273
Schummi
2002-07-21 07:04
2002.08.15
про аналоги


6-48223
keymaster
2002-06-01 02:25
2002.08.15
Синхронизация времени. КАК?


6-48228
Oduvan
2002-06-01 16:47
2002.08.15
Как загрузить текстовый файл находящийся в Интернете


6-48238
KPV-10k
2002-05-24 21:18
2002.08.15
Опять про TServerSocket и TClientSocket...