Urgente Trigger

Buenos Días
Tengo una duda sobre la creación de trigger de auditoria lo que pasa es que estoy auditando la acciones a las tablas más importante y en otra tabla guardo(ins, del, upd, fecha etc...) pero la duda es la siguiente siempre creo mi trigger con la opción BEFORE pero no seria mejor ponerle after después de haber insertado en la tabla principal se ejecute el trigger.
Podrías explicarme si fueras tan amble la diferencia exacta de before vs after pero como te digo he probado con los dos y los me funcionan normal pero tengo esa duda muchas gracias por tu ayuda.
create or replace trigger tabla_log
BEFORE INSERT OR UPDATE OR DELETE ON MATRICULA
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW

2 Respuestas

Respuesta
1
AFTER ejecuta el trigger despues de la operacio dml que lo dispara y BEFORE antes. Lo ejecute antes o depues el resultado puede ser el mismo, puesto que el trigger y la sentencia forman parte de la misma transacción.
Siempre se ha dicho que los After son más efectivos y que los before solo se deben utilizar cuando se va a modificar el valor :new, porque afecta al modo de lectura de los datablocks y pude afectar al rendimiento.
También puede afectar a la ejecución de las constraint. Before se ejecuta antes de la aplicación de las constraint de la tabla.
Respuesta
-1
Como lo has dicho eso depende de que manera deseas que se ejecute tu trigger cuando le dices before significa que este se dispara antes de que se realiza la acción por ejemplo si le dices before insert significa que este ejecutara las instrucciones correspondientes y después hará el insert en la tabla en cambio si le dices after este se ejecutara después de que se haya insertado en la tabla es decir primero inserta después ejecuta y en el before ejecuta y después inserta eso ya lo defines tu de que manera deseas que tu trigger se dispare espero a ver aclarado tu duda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas