![]() |
![]() |
![]()
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. |
|
|
![]() |
![]()
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 15:38 |