Я хочу иметь «последнюю модифицированную» временную метку (или дату-время? Не уверен, если она имеет значение, отличное от представления данных) для записи последней измененной даты / времени записи этой записи.
Видимо, это возможно с помощью триггеров. Поскольку я раньше не использовал триггеры, я подумал, что мог бы сначала попробовать «правило обновления», так как оно для меня тоже ново:
http://www.postgresql.org/docs/8.3/static/rules-update.html
У меня есть эта таблица для записи данных сеанса клиента:
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.
*/
Тогда я мог бы создать такое правило. Я не уверен насчет синтаксиса, или использовать НОВЫЙ или СТАРЫЙ. Кто-нибудь может посоветовать правильный синтаксис?
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
Как видите, я хочу обновить только последнюю измененную запись THAT customer_sessionid, поэтому я не уверен, как на нее ссылаться. Запрос UPDATE будет выглядеть так:
UPDATE customer_session SET savedsearch_contents = 'abcde'
WHERE customer_sessionid = {unique customer ID}
Большое спасибо!