TRIGGER BEFORE UPDATE + UPDATE NA TEJ SAMEJ TABELI |
TRIGGER BEFORE UPDATE + UPDATE NA TEJ SAMEJ TABELI |
15.07.2013, 09:32:20
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 3.07.2013 Skąd: Kraków Ostrzeżenie: (0%) |
Witam,
Próbuję napisać wyzwalacz, który po update'cie na tabeli, ponownie ją uaktualni (tj. wykona ponowny update) tabela bledy (id_blad, id_uzytkownik, technologia, data_zgloszenia, data_zamkniecia, opis, id_pracownik, id_przypisanego, id_rodzaj, id_poziom, id_status) Właściwie to pola tej tabeli nie muszą nas interesować. Chodzi tylko o data_zakmniecia oraz id_status. Muszę napisać wyzwalacz, który po zmianie id_status na wartość 4, ustawi datę zamknięcia na SYSDATE.
Podczas wykonania, odpowiedniego do uruchomienia wyzwalacza, zapytania, wyskakuje następujący błąd: SQL Error: ORA-04091: table PROJECT.BLEDY is mutating, trigger/function may not see it ORA-06512: at "PROJECT.ZAKMNIECIE_BLEDU_TRIG", line 2 ORA-04088: error during execution of trigger 'PROJECT.ZAKMNIECIE_BLEDU_TRIG' 04091. 00000 - "table %s.%s is mutating, trigger/function may not see it" *Cause: A trigger (or a user defined plsql function that is referenced in this statement) attempted to look at (or modify) a table that was in the middle of being modified by the statement which fired it. *Action: Rewrite the trigger (or function) so it does not read that table. Moje pytania: Czy da się w ogóle zrobić coś takiego? Jeżeli tak, prosiłbym o wskazówki. Bo treść błędu sugeruje, że niemożliwe jest wykonanie update'a na aktualnie modyfikowanej tabeli... Pozdrawiam. Ten post edytował llepec 15.07.2013, 09:45:10 |
|
|
15.07.2013, 09:51:20
Post
#2
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) |
|
|
|
15.07.2013, 09:55:57
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 3.07.2013 Skąd: Kraków Ostrzeżenie: (0%) |
Dziękuję Nie wiem czemu tak to robiłem...
Tak czy siak: problem solved |
|
|
Wersja Lo-Fi | Aktualny czas: 23.09.2024 - 00:22 |