Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Triggery (wyzwalacze), Warunek IF zalezny od wartości w innej tabeli, przerywanie ich działan
djgrin
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 13.05.2007

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


Czesc!
Wytlumacze swoj problem na przykladzie: mam tabele z danymi pracownikow oraz z urlopami, ktore biora pracownicy. Napisalem sobie triggera, ktory po dodaniu czegos do tabeli Urlopy (after insert), odejmuje ilosc pozostalego urlopu dla danego pracownika z tabeli Pracownicy. Tyle, ze dziala on w ten sposob, ze mozna dodawac urlopy w nieskonczonosc, czyli powodowac ujemne wartosci w polu IloscUrlopu w tabeli Pracownicy. Chcialbym to zmienic - mam dwa pomysly: pierwszy jest taki, ze w triggerze, ktory napisalem uwarunkuje wykonanie sie wszystkiego od zawartosci pola IloscUrlopu w tabeli Pracownicy dla danego pracownika, a drugi taki, ze napisze nowego triggera "before update on Pracownicy", ktory sprawdzi wartosc pola IloscUrlopu danego pracownika i jesli bedzie za mala, to przerwie zmiane wartosci (+ np. usunie wpis z tabeli Urlopy).
Jak sadzicie, ktora opcja jest lepsza (chyba, ze macie jakies inne pomysly) i jak takie cos napisac?
Prosze o szybka odpowiedz, dzieki z gory.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Sprawdz to co pisalem wczesniej. Jesli stosujesz trigger przed dodaniem rekordu i z triggera zamiast return NEW zwrocisz false czy doda rekord. Jesli takie cos zadziala to problem masz rozwiazany i nie trzeba z bledem kombinowac.

Sprawdz to niestety w manualu czegos takiego sie nie doszukalem co w cale nie jest powiedziane ze nie istnieje.
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: 9.10.2025 - 15:38