Disparar trigger con base en un campo actualizado por otro trigger

Como puedo disparar un trigger con base en un campo, ¿cuándo ese registro es actualizado por otro trigger de tipo BEFORE INSERT?

Me explico, tengo la Tabla1 donde al insertar un registro a esta tabla se dispara un trigger que entre otras cosas me actualiza un campo de Tabla1, el problema esta que este campo que se actualiza por el trigger debe lanzar otro trigger, que al final actualiza un tercer campo de la misma Tabla1, peor no se lanza el segundo trigger ¿Cómo lo soluciono?

Respuesta
1

Si el registro está bloqueado por el primer trigger no podrás utilizar el segundo ya que te dará un mutating error (básicamente que la tabla está pendiente de commit y no permite ser actualizada). Esto debes controlarlo bien.

Por otro lado. El segundo trigger deberías definirlo after update on campo de la tabla que se ha actualizado, pero como te comento, seguramente tendrás el registro bloqueado.

te recomendaría que sustituyeses el segundo trigger por una función donde asignes el valor :NEW.tercer_campo = al resultado de la función.

1 respuesta más de otro experto

Respuesta
1

Igual es una pregunta estúpida, pero por probar...

¿Y no puedes hacerlo todo en el primer trigger?

¡Gracias! Así lo tuve que hacer, me lo solicitaban con 2 triggers, pero por lo no funcional propuse en uno solo y parece que así va a quedar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas