Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.08.15;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
7-48325
ЗГ
2002-05-23 07:32
2002.08.15
Люди не подскажите как в виндах и в ХР прописать прогу, которая


14-48256
Виктор
2002-07-18 16:56
2002.08.15
Как в runtime добавить Calc Field в TTable?


1-48127
BlackSun
2002-07-31 17:10
2002.08.15
exe+dll->exe


6-48226
Vasya_Pupkin
2002-05-31 16:24
2002.08.15
need help


1-48203
ghg
2002-08-01 08:02
2002.08.15
Работа со строками





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский