Triggers and Functions

Поиск
Список
Период
Сортировка
От Tom Allison
Тема Triggers and Functions
Дата
Msg-id 4566E4AC.5060700@tacocat.net
обсуждение исходный текст
Ответы Re: Triggers and Functions  ("A. Kretschmer" <andreas.kretschmer@schollglas.com>)
Список pgsql-novice
I would like to create a function/trigger which will update a timestamp on table
A when an UPDATE is executed against table B

I tried this:


create table tokens (
   token_idx BIGSERIAL PRIMARY KEY,
   token varchar(128) not null unique,
   last_seen timestamp default now()
)

create table user_token (
   user_idx integer not null references users(user_idx) on delete cascade on
update cascade,
   token_idx bigint not null references tokens(token_idx) on delete cascade on
update cascade,
   h_msgs integer default 0,
   s_msgs integer default 0,
   constraint pkey_user_token PRIMARY KEY (user_idx, token_idx)
)

CREATE FUNCTION update_token(bigint) RETURNS void AS '
   UPDATE tokens SET last_seen = now()
   WHERE token_idx = $1 and last_seen < now();
' LANGUAGE SQL


CREATE TRIGGER touch_token AFTER UPDATE ON user_token FOR EACH ROW
EXECUTE PROCEDURE update_token(token_idx)


But it doesn't seem to change the filed 'last_seen' on the tokens table...

В списке pgsql-novice по дате отправления:

Предыдущее
От:
Дата:
Сообщение: Data (Table) Structure Question
Следующее
От: "A. Kretschmer"
Дата:
Сообщение: Re: Triggers and Functions