Quiero tener una marca de tiempo "lastmodified" (o datetime? No estoy seguro si hace una diferencia que no sea la presentación de los datos) para registrar la última fecha/hora de modificación de la entrada de ese registro.Postgresql - regla de actualización - ¿es posible tener una fecha de última modificación, actualizada automáticamente "en la actualización" de esa fila?
Aparentemente esto es posible usando activadores. Ya que no he utilizado disparadores antes, pensé primero que pude probar una "regla de actualización", ya que es nuevo para mí también:
http://www.postgresql.org/docs/8.3/static/rules-update.html
Lo que tengo es esta tabla para registrar los datos de la sesión de un cliente:
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.
*/
Entonces podría crear una regla como esta. No estoy seguro acerca de la sintaxis, o si usar NEW o OLD. ¿Alguien podría aconsejar la sintaxis correcta?
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
Como se puede ver Quiero actualizar la entrada de LastModified sólo eso customer_sessionid, así que no estoy seguro de cómo hacer referencia a ella. La consulta de ACTUALIZAR sería la siguiente:
UPDATE customer_session SET savedsearch_contents = 'abcde'
WHERE customer_sessionid = {unique customer ID}
¡Muchas gracias!