Crear un evento cada vez que se hace una UPDATE

From: Alvaro Uría <fermat(at)rigel(dot)deusto(dot)es>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Crear un evento cada vez que se hace una UPDATE
Date: 2008-07-16 11:40:10
Message-ID: 487DDE1A.3010702@rigel.deusto.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola,

Lo primero de todo: es la primera vez que escribo así que un saludo a
todos :-)

Quería convertir una opción de MySQL (al crear tablas) a Postgres, pero
no estaba seguro.

La tabla en MySQL es algo así como,

CREATE TABLE `TResource` (
`id` varchar(255) NOT NULL,
`type` varchar(50) NOT NULL default '',
`uploaded` timestamp NOT NULL default CURRENT_TIMESTAMP on update
CURRENT_TIMESTAMP,
`validNotBefore` timestamp NOT NULL default '0000-00-00 00:00:00',
`validNotAfter` timestamp NOT NULL default '0000-00-00 00:00:00',
`name` varchar(255) NOT NULL default '',
`description` text,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

En Postgres, la he creado tal que,

CREATE TABLE TResource (
id character varying(255) NOT NULL,
"type" character varying(50) NOT NULL default '',
uploaded timestamp NOT NULL default CURRENT_TIMESTAMP,
validNotBefore timestamp NOT NULL default '0000-00-00 00:00:00',
validNotAfter timestamp NOT NULL default '0000-00-00 00:00:00',
name character varying(255) NOT NULL default '',
description text
);

ALTER TABLE TResource
ADD CONSTRAINT TResource_pkey PRIMARY KEY (id);

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,

CREATE RULE TResource_update_uploaded AS ON UPDATE TResource.uploaded DO
UPDATE TResource (new.uploaded = NOW()) WHERE TResource.id=current.id;

¿Sería así la equivalencia?

Muchas gracias.

Saludos,
Alvaro Uría

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gorka 2008-07-16 11:47:53 Forzar la escritura del log
Previous Message Silvio Quadri 2008-07-15 13:57:23 Re: LATIN1 versus UTF8