Excerpts from Alexis Camue's message of mar abr 10 00:17:40 -0300 2012:
> Buenas: 
> Alguien tiene la idea de como hacer los siguiente: 
> Necesito crear una tabla cuyos elementos insertados sean temporales, es decir 
> se eliminen automáticamente cuando se cumpla un tiempo definido por un 
> usuario X, en este caso, yo. 
> Ej: Tengo una tabla persona, que tiene un campo: nombre. Esta tabla tiene 
> definido (que es lo que no se como hacer) que cuando se inserte un nombre 
> este se elimine (por ejemplo) a los 10 minutos de ser insertado. 
> La solución debe estar por triggers que capturen el INSERT pero como hago 
> para que ese tiempo que pudiera añadirse como un nuevo campo en la tabla se 
> decremente. 

Creo que en lugar de tener un campo de "tiempo que decrementa" y que
hace que el registro se elimine cuando llega a cero, lo que deberías
tener es un "hora de expiración" que es la hora (timestamp) más tarde a
la cual el registro es válido.  Cualquier registro que tenga una hora de
expiración más temprana que la hora actual debe considerarse
inexistente.  Además puedes tener un proceso programado que elimine
registros con horas de expiración en el pasado, pero esto debería ser
una optimización y no es absolutamente necesario para la correctitud.

Como analogía: en lugar de hacer que la base de datos almacene tu edad,
haz que almacene tu fecha de nacimiento.  De esa forma no tienes que
estar todos los días fijándote si tienes que incrementarla.

-- 
Álvaro Herrera <[email protected]>
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a