Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak modyfikować tabele z ustawionym na niej triggerem
woj_tas
post
Post #1





Grupa: Zarejestrowani
Postów: 230
Pomógł: 36
Dołączył: 31.03.2006
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


Witam.

Mam tabele odpowiedzi (id, tytul, kolejnosc) oraz ustawionego na niej wyzwalacz:
  1. CREATE OR REPLACE
  2. TRIGGER ODPOWIEDZI_TRG
  3. AFTER DELETE ON ODPOWIEDZI
  4. FOR EACH ROW
  5. DECLARE
  6. nr_pytania NUMBER(4);
  7. nr_kolejnosc NUMBER(4);
  8. BEGIN SELECT pytanie_id, kolejnosc INTO nr_pytania, nr_kolejnosc FROM odpowiedzi WHERE odpowiedz_id = :OLD.odpowiedz_id;
  9. UPDATE odpowiedzi SET kolejnosc = kolejnosc-1 WHERE (kolejnosc > nr_kolejnosc AND pytanie_id = nr_pytania);
  10. END;

Jak widac chciałbym w wyzwalaczu zmodyfikować kolumnę kolejność. Niestety otrzymuję błąd:
Cytat
tabela ODPOWIEDZI ulega mutacji, wyzwalacz/funkcja może tego nie widzieć


Pytanie brzmi w jaki sposób mogę działać na tabeli na której utworzony jest wyzwalacz?

Dodam tylko że znalazłem odpowiedź aby usunąć FOR EACH ROW ale niestety wtedy nie będę miał dostępu do :NEW i :OLD

Ten post edytował woj_tas 3.04.2008, 22:39:38
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.04.2026 - 16:15