Я хочу иметь временную метку "lastmodified" (или datetime? not sure, если она имеет значение, отличную от представления данных), чтобы регистрировать последнюю измененную дату/время записи записи.
По-видимому, это возможно с помощью триггеров. Поскольку раньше я не использовал триггеры, я подумал, что сначала могу попробовать "правило обновления", поскольку это тоже ново для меня:
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.
*/
Тогда я мог бы создать такое правило. Я не уверен в синтаксисе, или о том, использовать ли NEW или OLD. Может ли кто-нибудь посоветовать правильный синтаксис?
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
Как вы можете видеть, я хочу обновить только последнюю измененную запись только для пользователя customer_sessionid, поэтому я не уверен, как ссылаться на нее. Запрос UPDATE будет выглядеть следующим образом:
UPDATE customer_session SET savedsearch_contents = 'abcde'
WHERE customer_sessionid = {unique customer ID}
Большое спасибо!