![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 0 Dołączył: 26.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam, Muszę stworzyć coś ala historia rekordu. Jako że od strony aplikacji mam bardzo dużo zapytań, chciałbym to zaszyć w logice po stronie bazy. Znalazłem ciekawy wpis
http://spiechu.pl/2012/09/09/mysql-i-autom...comment-page-1/ ale nie działa on tak jak powinien. W momencie gdy tylko jeden trigger jest dodany to wszystko pracuje dobrze (sprawdzałem na update) ale w momencie gdy dodam wszystkie triggery w historii podmienia mi tylko część danych natomiast user_id i data bierze jakby z pamięci i wstawia te dane, które były wpisane jako pierwsze (już po wykonaniu jakiegoś triggera). Czy jest tutaj błąd w kodzie? Czy może zależy to od ustawień serwera MySQL? A może ktoś zna inne ciekawe metody na tworzenie historii rekordu? dla aktywności typu insert update i delete Ten post edytował gawar 15.05.2014, 20:43:40 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 79 Dołączył: 25.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Autor chciał uprościć kod robiąc dodatkową procedurę a przekombinował.
Wszystkie triggery powinny być wykonywane po modyfikacji danych w tym AFTER DELETE. Jeśli są wykonywane przed to może się zdarzyć, że np. kasowanie nie powiedzie się z powodu ograniczenia przez klucz obcy a wyzwalacz mimo to zostanie wywołany. Poczytaj sobie: użycie wyzwalaczy do logowania zmian w tabeli. Przedstawione tam rozwianie zadziała. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 16:07 |