Przydatny trigger - historia warning'ów i access'ów
Witam, Ostatnio wyłączyłem kilka osób za niepłacenie. Pozostało pytanie czy zostaje jakiś ślad kiedy taka osoba została wyłączona lub ma warning? 30 minut i jest :) wpisy pojawiają sie w polu location dla każdego kompa. ( do działania potrzeba mysql 5.0 lub wyżej - z obsługą triggerów oczywiście ) Poprawki mile widziane ( do zrobienia napewno jakiś ogranicznik dla ilości wpisów ) , pozdrawiam Miłosz. use lms; create trigger trigger1 BEFORE UPDATE ON nodes FOR EACH ROW BEGIN if old.warning <> new.warning then IF NEW.warning=0 THEN SET NEW.location = concat(NEW.location, "wylaczony warning ", now(), "<br>" ) ; end if; IF NEW.warning=1 THEN SET NEW.location = concat(NEW.location, "<b>wlaczony warning</b> ", now() , "<br>" ) ; end if; end if; if old.access <> new.access then IF NEW.access=0 THEN SET NEW.location = concat(NEW.location, "<b>wylaczony access</b> ", now(), "<br>" ) ; end if; IF NEW.access=1 THEN SET NEW.location = concat(NEW.location, "wlaczony access ", now() , "<br>" ) ; end if; end if; end __________ Informacja programu ESET Smart Security, wersja bazy sygnatur wirusow 4519 (20091018) __________ Wiadomosc zostala sprawdzona przez program ESET Smart Security. http://www.eset.pl lub http://www.eset.com
Troche zmienione dla postgres. A i pole location jest od zupelnie czego innego wiec uzylem pola info, co mniemam bedzie bardziej poprawne CREATE FUNCTION emp_stamp() AS ' BEGIN IF (OLD.access = 1 AND NEW.access = 0) THEN NEW.info := NEW.info || '<b>access OFF ' || lms_current_user() || ' ' || now() || '</b><br>'; END IF; IF (OLD.access = 0 AND NEW.access = 1) THEN NEW.info := NEW.info || '<b>access ON ' || lms_current_user() || ' ' || now() || '</b><br>'; END IF; RETURN NEW; END; ' LANGUAGE 'plpgsql'; CREATE TRIGGER emp_stamp BEFORE UPDATE ON nodes FOR EACH ROW EXECUTE PROCEDURE emp_stamp() Mogą być błędy bo orginalny sql do bazy mnie wciolo i musialem tworzyc na nowo -- Waldemar Dymkiewicz, administrator urządzeń sieciowych "Easy Com" Świątek Piotr, ul. Jodłowa 7, Góra tel. 65 543 20 44 wew. 4
uczestnicy (2)
-
Miłosz Szewczak -
Waldemar Dymkiewicz