![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 2.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cześć, mam w bazie trigger on update, który zmienia mi pole ostatniaModyfikacja, gdy jest zmieniany rekord. I jak ktoś sobie zmienia np. e-mail, to pole mi się fajnie aktualizuje. Teraz dołożyłem pole: ostatnieLogowanie, które zmieniam, gdy użytkownik się zaloguje i naturalnie nie chciałbym, aby wtedy aktualizowało się pole ostatniaModyfikacja...
Czy w triggerze można dać warunek, w którym zdefiniuję "jeżeli zmieniasz pole inne niż ostatnie logowanie" to kontynuuj... Nie umiałem tego zdefiniować w wyszukiwarce to się zarejestrowałem ![]() Wrzucę na wszelki wypadek kod triggera:
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Kod FOR EACH ROW
IF NEW.ostatnieLogowanie = OLD.ostatnieLogowanie THEN SET NEW.ostatniaModyfikacja=now() END IF; END |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 2.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
A w ten sposób
![]() Hmm, tylko jest problem, bo mając załóżmy w innej mojej tabeli 10 pól, których aktualizacja powinna spowodować zmianę czasu i 10 pól, których aktualizacja nie powinna spowodować zmiany to musze każde pole dopisać do warunku... Mógłbym zrezygnować z triggerów, ale to trochę utrudnia sprawę, a fajne jest to, że czas zostanie zaktualizowany wtedy, gdy pole się rzeczywiście zmieni, a nie wykonam UPDATE z tą samą wartością. Ale zawsze jak czas powinien się zaktualizować to w zapytaniu mam wyrażenie modyfikowal='$_SESSION["idPracownika"]'? Czy w warunku mogę jakoś zawrzeć, czy mam w zapytaniu UPDATE tą frazę? Tzn. , że próbuję zaktualizowć pole modyfikowal (choć pracownik może modyfikować 2 razy z rzędu, wartość się nie zaktualizuje, a czas powinien). Ten post edytował atomic1234 2.08.2010, 13:03:33 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Możesz spróbować
Kod IF NEW.modyfikowal IS NOT NULL THEN ...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 03:57 |