Re: Crear un evento cada vez que se hace una UPDATE

From: Alvaro Uría <fermat(at)rigel(dot)deusto(dot)es>
To: Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Crear un evento cada vez que se hace una UPDATE
Date: 2008-07-16 18:04:52
Message-ID: 487E3844.2000908@rigel.deusto.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola,

El 16/07/08 17:26, Jaime Casanova escribió:
> On 7/16/08, Alvaro Uría <fermat(at)rigel(dot)deusto(dot)es> wrote:
>> En Postgres, la he creado tal que,
>>
>> validNotBefore timestamp NOT NULL default '0000-00-00 00:00:00',
>> validNotAfter timestamp NOT NULL default '0000-00-00 00:00:00',
>
> te dejo hacer eso? esa fecha no es valida en postgres...

He copiado del fichero original donde lo escribí, y después de mandarlo
me he acordado de que hubo cosas que tuve que modificar.

En lugar de esa fecha, puse una en el pasado (1970-blablabal :-)

Y en el campo "uploaded" no usé "CURRENT_TIMESTAMP" si no "now()".

>> El problema es que parece que no se puede hacer, para el atributo
>> "uploaded", el añadido de "on update CURRENT_TIMESTAMP" con lo que
>> leyendo la documentación he pensado en algo así como,
>>
>
> eso se hace con un trigger... postgres trata de ajustarse al estandár
> en lugar de inventarse clausulas a lo loco...

Con ánimo de aprender, ¿por qué no se podría hacer con una "CREATE RULE"?

Por otro lado, ¿cómo haríais el trigger? (entendería un STFW o RTFM,
pero bastante de eso ya lo he hecho y necesito una guía para "la primera
vez")

¿El trigger sería algo así? (generalmente, la update es a un solo
registro, por lo que el "for each" supongo que se ejecutaría una sola vez)

CREATE TRIGGER tresource_update AFTER UPDATE ON TResource
FOR EACH ROW EXECUTE PROCEDURE update_stamp(uploaded);

¿Y el procedure?

CREATE OR REPLACE FUNCTION update_stamp() returns trigger as $$
begin
return now();
end;
$$ language plpgsql;

Saludos, y gracias.
Alvaro Uría

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message alejandrob 2008-07-16 21:30:55 Reinstalacion
Previous Message Jaime Casanova 2008-07-16 15:26:05 Re: Crear un evento cada vez que se hace una UPDATE