jezzo
23.12.2007, 17:54:38
cześć,
mam drobny kłopot z napisaniem triggera tworzącego historiię zmian na tabelce.
W jaki sposób stworzyć takiego triggera, przechowującego na całą historię zmian haseł.
i tak wersja tought : dla tabelki user (user_id, user_name_user_pass, user_status)
strukturka analogiczna czyli user_hist(hist_id, user_id, user_name, user_pass, user_status, dttm)
oraz wersja nightmare : dla tabelki user(user_id, user_name_user_pass, user_status)
tabelka historyczna history(hist_id, table, column, id, old_value, new_value, dttm)
ta wersja miałaby być uniwersalna czyli dla każdej zmienionej krotki zapisywać historię.
czy ta druga wersja jest wykonalna ?
pozdrawiam,
Tomek
Indeo
23.12.2007, 22:22:58
Chyba nie zrozumiałem w czym problem

Ale ... tabela historyczna to taka sama tabela jak oryginał ale z dodatkową kolumną pełniącą rolę "osi czasu". Może to być id(autoincrement) albo timestamp (warto wiedzieć kiedy zaszła modyfikacja). Po prostu podczas zmiany na tabeli userów zrzucam poprzednią wartość do tabeli historycznej z dopisaniem bieżącej daty w dodatkowej kolumnie. Czasem zapisuję jeszcze dodatkowe informacje jak np. autor zmiany (niekoniecznie musi to być dany użytkownik) . Triggery to świetne narzędzie w śledzeniu zmian.
jezzo
24.12.2007, 21:44:55
myślę, że udało ci się przebrnąć przez tego posta ze 100% zrozumieniem.
Problem w tym, że nie wiem jak utworzyć taki wyzwalacz.
Mógłbyś wkleić przykładowy kod

Z góry dzięki
spoko już znalazłem jakies podstawy więc poszło
http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html