Muchas gracias por la ayuda y una disculpa por lo del correo. Un saludo.
2011/10/11 Alejandro Carrillo <[email protected]> > > 1) El bloque si se puede. Igual el trigger debe generar una excepcion y > luego haces rollback de la transaccion cuando genere un error. > 2) Por favor escribir unicamente a la lista de email, ya que si se escribe > al destinatario y a la lista a la vez se tienen 2 correos de la misma > información. Gracias > > ------------------------------ > *De:* Silvio Bravo Cadó <[email protected]> > *Para:* Alejandro Carrillo <[email protected]> > *CC:* "[email protected]" <[email protected]> > *Enviado:* lunes 10 de octubre de 2011 19:30 > > *Asunto:* Re: [pgsql-es-ayuda] Bloqueo de tablas o transacciones > > Creo que lo de la duda del bloque deberia quedar conque pusiera dentro de > una transaccion todos los inserts de las materias del bloque y listo > cierto?. > > Un saludo. > > > 2011/10/10 Silvio Bravo Cadó <[email protected]> > > Muchas gracias por la pronta respuesta, me parece muy buena idea lo del > trigger, asi queda super bien. Solo me queda una duda y es como sabre que se > ha llenado el cupo, simplemente porque no se inserto? o tal vez tendria que > poner un listener para escuchar que hubo algun cupo lleno. > > Ahora tengo otro problema, como podria hacer todo esto en un bloque, por > ejemplo necesito que un bloque de materias se registren pero si una de ese > bloque llega a cupo limitado se haga un rollback de todo el bloque, se > podria? > > > > De antemano muchas gracias. > > Un saludo. > > > 2011/10/10 Alejandro Carrillo <[email protected]> > > > Por favor responder si la pregunta solucionó tu inquietud > ------------------------------ > *De:* Alejandro Carrillo <[email protected]> > *Para:* Silvio Bravo Cadó <[email protected]> > *CC:* "[email protected]" <[email protected]> > *Enviado:* lunes 10 de octubre de 2011 13:34 > *Asunto:* Re: [pgsql-es-ayuda] Bloqueo de tablas o transacciones > > Puedes resolverlo con un "tigre", es la solución que dan los motores de bd > sobre estos casos. Como cosa rara, aqui un ejemplo hecho y probado por mi: > > create or replace function fn_datoslimitados() returns trigger as $$ > declare > conteousu numeric; > begin > select count(*) into conteousu from public.grupos_usuarios ug where > ug.codgrupo = new.codgrupo; > if conteousu >= 10 then > raise 'Datos suficientes'; > end if; > RETURN new; > end; > $$ > language plpgsql; > > drop TRIGGER trg_nroreg ON public.grupos_usuarios ; > > CREATE TRIGGER trg_nroreg AFTER INSERT or UPDATE > ON public.grupos_usuarios FOR EACH row > EXECUTE PROCEDURE fn_datoslimitados (); > > > ------------------------------ > *De:* Silvio Bravo Cadó <[email protected]> > *Para:* postgre sql <[email protected]> > *Enviado:* lunes 10 de octubre de 2011 11:45 > *Asunto:* [pgsql-es-ayuda] Bloqueo de tablas o transacciones > > Saludos lista, nuevamente molestandolos con lo siguiente: estamos > desarrollando un sistema escolar en el que permitimos la inscripcion de > alumnos a un grupo en especifico, pero se da el caso que el grupo tien un > cupo limitado por ejemplo, solo permite 20 o 30 alumnos por grupo, por lo > que se requiere evitar que un grupo se cargue con mas alumnos del que debe. > Cabe mencionar que el sistema es web y que los alumnos se inscriben a traves > del sistema por lo que habra concurrencia de conexion a la db posiblemente > intentanto inscribirse al mismo grupo y se tiene que evitar que el grupo se > sobre sature. Para resolver esto se me ocurrio utilizar lock tables con el > fin de bloquear la tabla de inscripcion para evitar que un grupo se llene > con mas de lo debido, pero no se si es la mejor forma de resolverlo, ya que > imagino tendre problemas de latencia por el caso de que muchos usuarios > quieran inscribirse y esten bloqueados hasta que se valla desbloqueando la > tabla, la verdad no he hecho antes nada con lock table y quisiera saber si > alguien ya ha resuelto algun caso parecido o el mismo. > > De antemano muchas gracias. > > Un saludo. > > > -- > * > > > Ing. Silvio Bravo Cadó* > Desarrollo de Software > *Tlaltek S.A de C.V* <http://tlaltek.com> > (229) 9 2 1 1 3 2 6 ext. 102. > Veracruz, México. > > > > > > > > > -- > * > > > Ing. Silvio Bravo Cadó* > Desarrollo de Software > *Tlaltek S.A de C.V* <http://tlaltek.com> > (229) 9 2 1 1 3 2 6 ext. 102. > Veracruz, México. > > > > > -- > * > > > Ing. Silvio Bravo Cadó* > Desarrollo de Software > *Tlaltek S.A de C.V* <http://tlaltek.com> > (229) 9 2 1 1 3 2 6 ext. 102. > Veracruz, México. > > > > -- * Ing. Silvio Bravo Cadó* Desarrollo de Software *Tlaltek S.A de C.V* <http://tlaltek.com> (229) 9 2 1 1 3 2 6 ext. 102. Veracruz, México.
