Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

cancelar operación en trigger

Estas en el tema de cancelar operación en trigger en el foro de PostgreSQL en Foros del Web. Hola a todos mi pregunta es la siguiente: en un trigger en la función que voy a definir para el trigger, como puedo cancelar la ...
  #1 (permalink)  
Antiguo 14/07/2008, 22:04
 
Fecha de Ingreso: julio-2008
Mensajes: 3
Antigüedad: 16 años, 4 meses
Puntos: 0
cancelar operación en trigger

Hola a todos mi pregunta es la siguiente: en un trigger en la función que voy a definir para el trigger, como puedo cancelar la operación digamos de inserción en el evento before?.
He visto en la documentación de postgres que para que ingrese con éxito hago return new y para cancelar solo hace un raise execption '' y con esto se cancela el insert hay otra manera de cancelar? cuando hago un return null, igual inserta el registro.
  #2 (permalink)  
Antiguo 15/07/2008, 02:22
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Respuesta: cancelar operación en trigger

Cita:
cuando hago un return null, igual inserta el registro.
¿?¿?¿?¿? Incorrecto, a no ser que esto cambiase en las ultimas versiones, cosa que dudo mucho.

En un insert before:
- Return new --> Ok
- Return null --> Cancela la operacion, NO HACE EL INSERT, pero no lanza un error
- raise exception --> Cancela la operacion, lanza un error

Salu2
  #3 (permalink)  
Antiguo 17/07/2008, 16:07
 
Fecha de Ingreso: julio-2008
Mensajes: 3
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: cancelar operación en trigger

Ok, funciona cuando hago un update......... pero me refería cuando utilizo el pgadmin, osea que cuando hago clic derecho en la tabla selecciono View Data->View All Rows y me muestra los datos de la tabla, cuando manipulo los mismos con esta opción, el trigger update no funciona mientras que triggers para insert, delete funcionan de maravilla, puede que esto sea un bug?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:30.