diferencia entre el antes y después de activar en oracle

Puede alguien explicar la diferencia entre “antes” y “después de” gatillo en oracle 10g con un ejemplo ?

Todavía no estaba seguro de lo que estaba buscando en términos de simplicidad, por lo que he borrado mi respuesta. Alguien más puede tener una buena idea.
Por cada pequeña duda yo soy de publicar una pregunta en el desbordamiento de la pila sin pensar …..(creo que no debe hacer)…. Entendí que la desencadena concepto ahora.De ahí en adelante lo voy a pensar antes de publicar la pregunta…

OriginalEl autor Jagan | 2010-09-05

3 respuestas

  1. 28

    Primero, voy a empezar mi respuesta por parte de la definición de gatillo: un gatillo es un procedimiento almacenado que se ejecuta cuando se agrega una fila, modificados o eliminados.

    Desencadenantes pueden ejecutar ANTES de la acción de tomar o DESPUÉS de que se tome la acción.

    BEFORE desencadenadores se utiliza generalmente cuando la validación debe tener lugar antes de aceptar el cambio. Se ejecuta antes de cualquier cambio hecho a la base de datos. Digamos que ejecutar una base de datos para un banco. Tiene una tabla accounts y una tabla transactions. Si un usuario hace un retiro de su cuenta, usted quiere asegurarse de que el usuario tiene suficientes créditos en su cuenta para su retiro. El BEFORE gatillo permitirá hacer eso y evitar que la fila se inserta en transactions si el saldo en accounts no es suficiente.

    AFTER desencadena normalmente se utilizan cuando la información debe ser actualizada en una tabla separada debido a un cambio. Se ejecuta después de que se han realizado cambios a la base de datos (no necesariamente comprometidos). Volvamos a nuestro ejemplo. Después de una transacción exitosa, usted quiere balance a ser actualizado en el accounts tabla. Un AFTER desencadenar te permite hacer exactamente eso.

    +1 yo agregaría que algún desencadenante validaciones han de realizarse DESPUÉS de la fila desencadenantes, porque es sólo en AFTER que los valores de la columna son “fijos”. ANTES de gatillo se pudo validar y pasar algún complejo regla basada en el valor de :NUEVO.col sólo por el valor de :NUEVO.col cambiarse más adelante en el gatillo tal que la regla es ahora violado.

    OriginalEl autor Andrew Moore

  2. 7

    No estoy completamente seguro de lo que usted está interesado en saber, así que voy a mantener este fundamentales.

    Antes De Desencadenadores

    • Como por el nombre, estos factores son despedidos antes de la creación de la fila en la tabla. Posteriormente, puesto que la fila no se ha creado todavía tiene acceso total a la :nuevo.table_element campo. Esto permite una limpieza de los datos y la homogeneidad si no deseados/datos con formato incorrecto es intentar ser insertado o actualizado. Esto es sólo un ejemplo básico, pero necesitas utilizar el antes de desencadenar en cualquier momento se puede requerir el acceso a la “:nuevos datos”.

    Desencadenadores After

    • Desde el desencadenador after incendios una vez que la fila ya ha sido creado, estos factores se suelen utilizar cuando se desea que la lógica se producen debido a la fila. Por ejemplo, si usted tiene una tabla de direcciones y un usuario actualiza su dirección, entonces usted lo desea, puede actualizar la dirección de ids de referencia en una referencia externa de la tabla sobre la creación (si le sucede a ser la retención de todas las direcciones). También, a diferencia de la antes de gatillo, no tiene acceso a modificar cualquiera de los valores de la columna desde la fila a la que ya existe en la tabla.

    OriginalEl autor imbroglio

  3. 1

    ANTES de GATILLO se utilizan cuando el gatillo de acción debe determinar si es o no la activación de las declaraciones debe ser permitido para completar .mediante el uso de ANTES de DESENCADENADORES usuario puede eliminar los innecesarios de procesamiento de la activación de la declaración de
    pero,DESPUÉS de DESENCADENADORES se utilizan cuando la activación de las declaraciones debe completarse antes de ejecutar la acción de disparo.

    Por favor, edita tu respuesta existente, en lugar de duplicar el otro.

    OriginalEl autor srimanta sahoo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *