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:
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 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 1 Dołączył: 27.02.2009 Ostrzeżenie: (0%)
|
Panie ciapol, oczywiście muszę się z Panem zgodzić jednak pojawiło się trochę filozofii z Pańskiej wypowiedzi...
Po pierwsze - sprawa kosmetyczna - posługuje się Pan błędną terminologią. Pojęcie "relacji" występuje jedynie w Teorii Relacyjnej, podobnie jak krotka, atrybut, dziedzina czy schemat relacji. W naszym przypadku mowa ewidentnie o modelu fizycznym relacyjnej bazy danych, zatem powinno używać się pojęcia "Tabela" po prostu :-) Po drugie działanie triggerem na tabeli na której jest ustawiony w sposób logiczny to bardziej jakaś magia. Problem woj_tas'a pojawił się z tego względu, że wyzwalacze FOR EACH ROW oraz wszystkie wywołane pośrenio przez DELETE CASCADE nie mogą czytać ani pisać w mutating tables, czyli tabelach które wyzwoliły zmianę (z małym wyjątkiem o którym zaraz) - to jest ten problem. W starszych wersjach nie mogły również modyfikować kluczy w constraining tables. Uściślając (wspomniany wyjątek), wyzwalacz FOR EACH ROW nie ma dostępu do innych wierszy zmieniającej się tabeli, CHYBA ŻE jest to wyzwalacz BEFORE | AFTER INSERT FOR EACH ROW wyzwolony przez wstawianie pojedynczego wiersza. Ta 'logika' wyczerpuje temat ;-) Powodzenia! |
|
|
|
woj_tas Jak modyfikować tabele z ustawionym na niej triggerem 3.04.2008, 22:38:59
lukskrodz A probowałes usunać
FOR EACH ROW
i zamiast tego da... 19.05.2008, 22:54:07 
ciapol Cytat(lukskrodz @ 19.05.2008, 22:54:0... 31.01.2009, 21:45:56
redman2 Wydaje mi sie, ze nie mozna dzialac na tabeli na k... 12.11.2008, 15:26:36
kshysieq A próbowaliście używać PRAGMA AUTONOMOUS_TRANSACTI... 22.11.2009, 17:24:33
wiiir no przeciez jest after delete, wiec usuwasz i daje... 27.08.2010, 22:17:41 ![]() ![]() |
|
Aktualny czas: 5.04.2026 - 20:34 |