Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sprawdzenie czy wysąpiły zmiany
Forum PHP.pl > Forum > Bazy danych > MySQL
Thuunder
Witam,

Chcę stworzyć log zmian w tabeli w oparciu o triggery w mysql'u.
Czy jest jakis sposób, żeby sprawdzić czy dane uległy jakiejkolwiek zmianie, żeby nie wykonywać update'u?
Zastanawiam się czy jest inna metoda niż wypisanie iluś tam if new.pole1 <> old.pole1 then ...
webdice
Nie bardzo wiem o co Ci chodzi TRIGGER uruchamiany jest zawsze przed lub po jakiejś akcji.

Kod
CREATE TRIGGER `Name` BEFORE/AFTER INSERT/UPDATE/DELETE ON `TableName`
Thuunder
Mam dwie tabele: tabela1 , tabela1_log.
Przy modyfikacji tabela1 dane, które były przed modyfikacją lądują w tabela1_log.
Chodzi mi o to,że jak wykonam x updat'ów z tymi samymi danymi to on się wykona i pojawi się w tabela1_log x niepotrzebnych rekordów, ponieważ dane nie ulegną zmianie.
Zastanawiam się teraz jak to sprawdzić (oczywiście tak,żeby się jak najmniej narobić winksmiley.jpg), że przed dodaniem rekordu do tabela1_log dane uległy zmianie. Jeśli nie to bez sensu jest dodawać kolejne rekordy do tabela1_log.
Mam nadzieję,że za bardzo nie zamotałem smile.gif
webdice
To nie rób updatów które nie zmieniają nic w bazie.
Thuunder
smile.gif hmm chodziło bardziej mi o to czy można inaczej sprawdzić czy nowe wartości są inne niż stare nie robiąc sprawdzenia :

  1. IF new.pola <> old.pole then
  2. INSERT .... INTO end IF;


ponieważ przy większej ilości pól w bazie to może być uciążliwe...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.