concurrencia de triggers

From: Espartano <espartano(dot)mail(at)gmail(dot)com>
To: Postgresql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: concurrencia de triggers
Date: 2006-06-14 02:03:16
Message-ID: d353bd50606131903v2e2284a6h735933099c7b7e75@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Buenas lista, tengo una pregunta que espero me puedan ayudar a
solucionar, estoy realizando un pequeño proyecto de un punto de venta,
el problema que tengo
es que llevo 3 tablas, una llamada caja, otra egresos y otra mas llama
ingresos, la definicion de cada una de ellas es esta:

Table "public.caja"
Column | Type | Modifiers
----------+------------------+-----------------------------------------------------------
id | integer | not null default
nextval('public.cajachica_id_seq'::text)
fecha | date | not null
cantidad | double precision | not null default 0.0
Indexes:
"cajachica_pkey" PRIMARY KEY, btree (id)
"uniq_caja_fecha" UNIQUE, btree (fecha)

Table "public.egresos"
Column | Type | Modifiers
--------------------+------------------------+---------------------------------------------------------
id | integer | not null default
nextval('public.egresos_id_seq'::text)
id_caja | integer | not null
id_concepto_egreso | integer | not null
fecha | date | not null
hora | time without time zone | not null
descripcion | text |
cantidad | double precision | not null
Indexes:
"egresos_pkey" PRIMARY KEY, btree (id)
Foreign-key constraints:
"fk_egresos_id_caja" FOREIGN KEY (id_caja) REFERENCES caja(id)

Table "public.ingresos"
Column | Type | Modifiers
---------------------+------------------+----------------------------------------------------------
id | integer | not null default
nextval('public.ingresos_id_seq'::text)
id_caja | integer | not null
id_concepto_ingreso | integer | not null
fecha | date | not null
hora | date | not null
descripcion | text |
cantidad | double precision | not null
Indexes:
"ingresos_pkey" PRIMARY KEY, btree (id)
Foreign-key constraints:
"fk_idcaja_ingresos" FOREIGN KEY (id_caja) REFERENCES caja(id)

Toricamente segun yo, la caja deberia ser inicializada por un usuario
todos los dias por la mañana cuando arranca el sistema con cierta
cantidad, creando asi una tupla para el dia en curso, pero he estado
pensando ¿que pasa si el sistema es para una vinateria que esta
habierta las 24 horas del dia?, he pensado en poner dos triggers uno
en ingresos y otro en egresos, que verifiquen que al momento de hacer
un insert en cualquiera de las dos tablas (egresos o ingresos) un
trigger before verifique la fecha ultima de la tabla caja, si esta es
menor que la actual (now()::date del insert de cualquiera de las dos
tablas ingresos o egresoso ) el trigger cree una tupla nueva en la
tabla caja con la fecha nueva, no se que tan buena idea sea hacer eso,
pero en si mi duda es ¿Que pasaria si los dos trigger se disparan al
mismo tiempo?, ¿uno crearia primero la tupla y el otro me daria
error?, creo que eso podria solventarlo con _execption_ , espero me
haya explicado bien y de antemano les agradesco y espero me puedan
orientar ;)

--
http://espartano.linuxreal.org/blog/html/index.php

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2006-06-14 03:03:55 Re: Newbie en PGSQL pregunta sobre COMMENTS ON
Previous Message WILLIAM PARRA 2006-06-13 23:31:40 Re: Sugerencia de crear un Multiempresarial