Triggers Help

From: Paolo Lopez <murphyperu(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Triggers Help
Date: 2005-08-20 17:42:10
Message-ID: ab97ec2005082010427e9f1ee1@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos.

De repente mi pregunta es muy obvia, pero mas de uno se habra topado
con problemas de concurrencia.

Bueno, la pregunta es si los triggers en postgres son secuenciales si
hay multiples pedidos a la vez sobre una accion en 1 misma tabla (
delete, update, etc ).

Mi caso concreto es que tengo una tabla que tiene como 8 campos, pero
de ellas solo requiero que 2 de ellas ( usuario y año ) se validen. Es
decir, que solo 1 usuario este dentro de 1 año, a pesar de que hay
otras 6 llaves que elevan las combinaciones posibles.

Si hago "trigger before insert for each row" tendria que hacer algo
dentro del trigger como :

IF (
( select count(*) from tablita where idUsuario="le doy el dato" and
idAño="le doy el dato" ) = 0
)
entonces dejar registrar

Pero esto es "real" ante las concurrencias ???. Teniendo en cuanta que
el select toma tiempo en llevarse a cabo, y lo leido antes podria ya
no ser lo correcto mili o nano segundos mas adelante.

Estoy que busco soluciones, tanto asi que he pensado en hacer una
tabla auxiliar de solo estos 2 campos que necesito como PK, para asi
poder hacer valer lo que quiero.

Espero que alguien pueda ayudarme.

Gracias de antemano.

El Murphy.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2005-08-20 19:06:00 Re: Triggers Help
Previous Message Oswaldo Hernández 2005-08-20 10:42:28 Re: Listar columnas de la llave primaria