CREATETRIGGER

nombre

El nombre que se dará al nuevo trigger. Debe ser distinto del nombre de cualquier otro trigger para la misma tabla. El nombre no puede ser calificado por el esquema – el disparador hereda el esquema de su tabla. Para un disparador de restricción, este es también el nombre a usar cuando se modifica el comportamiento del disparador usando SET CONSTRAINTS.

BEFORE
AFTER
INSTEAD OF

Determina si la función es llamada antes, después o en lugar del evento. Un disparador de restricción sólo puede ser especificado como AFTER.

evento

Uno de INSERT, UPDATE, DELETE, o TRUNCATE; esto especifica el evento que disparará el disparador. Se pueden especificar múltiples eventos usando OR.

Para eventos UPDATE, es posible especificar una lista de columnas usando esta sintaxis:

UPDATE OF column_name1 

El disparador sólo se disparará si al menos una de las columnas de la lista se menciona como objetivo del comando UPDATE.

Los eventos INTEAD OF UPDATE no admiten listas de columnas.

table

El nombre (opcionalmente calificado por el esquema) de la tabla o vista para la que es el disparador.

referenced_table_name

El nombre (posiblemente calificado por el esquema) de otra tabla referenciada por la restricción. Esta opción se utiliza para las restricciones de clave externa y no se recomienda su uso general. Sólo puede especificarse para desencadenantes de restricciones.

DEFERRABLE
NO DEFERRABLE
INICIALMENTE INMEDIATA
INICIALMENTE DIFERIDA

La temporización por defecto del desencadenante. Consulte la documentación de CREATE TABLE para conocer los detalles de estas opciones de restricción. Esto sólo se puede especificar para desencadenantes de restricciones.

FOR EACH ROW
FOR EACH STATEMENT

Esto especifica si el procedimiento de desencadenamiento debe dispararse una vez por cada fila afectada por el evento de desencadenamiento, o sólo una vez por sentencia SQL. Si no se especifica ninguno de los dos, FOR EACH STATEMENT es el valor por defecto. Los desencadenantes de restricciones sólo pueden especificarse PARA CADA FILA.

condición

Una expresión booleana que determina si la función desencadenante se ejecutará realmente. Si se especifica WHEN, la función sólo se llamará si la condición devuelve true. En los triggers FOR EACH ROW, la condición WHEN puede hacer referencia a las columnas de los valores de la fila antigua y/o nueva escribiendo OLD.column_name o NEW.column_name respectivamente. Por supuesto, los desencadenantes INSERT no pueden hacer referencia a OLD y los desencadenantes DELETE no pueden hacer referencia a NEW.

Los desencadenantes INSTEAD OF no admiten condiciones WHEN.

Actualmente, las expresiones WHEN no pueden contener subconsultas.

Tenga en cuenta que para los desencadenantes de restricciones, la evaluación de la condición WHEN no se difiere, sino que se produce inmediatamente después de realizar la operación de actualización de la fila. Si la condición no se evalúa como verdadera, el desencadenante no se pone en cola para su ejecución diferida.

nombre_de_función

Una función suministrada por el usuario que se declara como sin argumentos y que devuelve el tipo de desencadenante, que se ejecuta cuando se dispara el desencadenante.

argumentos

Una lista opcional separada por comas de los argumentos que se proporcionarán a la función cuando se ejecute el desencadenante. Los argumentos son constantes literales de cadena. Los nombres simples y las constantes numéricas también se pueden escribir aquí, pero todos se convertirán en cadenas. Por favor, compruebe la descripción del lenguaje de implementación de la función de activación para averiguar cómo se puede acceder a estos argumentos dentro de la función; podría ser diferente de los argumentos normales de la función.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.