Chcę mieć "lastmodified" znacznik czasu (lub datetime? Nie jestem pewien, czy robi on różnicy inne niż prezentacja danych), aby zarejestrować datę/czas ostatniej modyfikacji wpisu tego rekordu.Postgresql - reguła aktualizacji - możliwe, że data ostatniej modyfikacji, automatycznie aktualizowana "na aktualizację" tego wiersza?
Podobno jest to możliwe za pomocą wyzwalaczy. Ponieważ nie zostały wykorzystane wyzwalacze wcześniej, myślałem, że po raz pierwszy spróbować „zasady aktualizacji”, ponieważ jest to dla mnie nowe też:
http://www.postgresql.org/docs/8.3/static/rules-update.html
Co mam jest to stół do logowania danych sesji klienta:
CREATE TABLE customer_session (
customer_sessionid serial PRIMARY KEY,
savedsearch_contents text,
lastmodified timestamp default now()
); /*
@ lastmodified - should be updated whenever the table is updated for this entry, just for reference.
*/
Potem mógłbym stworzyć taką regułę. Nie jestem pewien co do składni ani czy używać NEW lub OLD. Czy ktokolwiek mógłby doradzić poprawną składnię?
CREATE RULE customer_session_lastmodified AS
ON UPDATE TO customer_session
DO UPDATE customer_session SET lastmodified = current_timestamp WHERE customer_sessionid = NEW.customer_sessionid
Jak widać Chcę zaktualizować lastModified wjazd tylko, że customer_sessionid, więc nie jestem pewien, jak go odwołać. Zapytanie UPDATE wygląda następująco:
UPDATE customer_session SET savedsearch_contents = 'abcde'
WHERE customer_sessionid = {unique customer ID}
Wielkie dzięki!