CREATE TRIGGER -- Crea un nuevo disparador
CREATE TRIGGER name { BEFORE | AFTER } { event [OR ...] } ON table FOR EACH { ROW | STATEMENT } EXECUTE PROCEDURE ER">funcBLE> ( arguments ) |
name
El nombre de un disparador existente.
table
El nombre de una tabla.
event
Uno entre INSERT, DELETE o UPDATE.
funcname
Una funci�n suministrada por el usuario.
CREATE
INSERT: invoca al trigger cuando una nueva fila es insertada en la tabla asociada con el trigger.
DELETE: invoca al trigger cuando una fila asociada a la tabla es borrada.
UPDATE: invoca al trigger cuando una fila asociada a la tabla es actualizada
UPDATE OF column-list: invoca al trigger cuando una fila de la tabla asociada es actualizada y cuando la columna de la column-list ha sido modificada.
El uso de OR REPLACE permite sobreescribir un trigger existente. Si se omite, y el trigger existe, se producirá, un error.
El modificador FOR EACH ROW indica que el trigger se disparará cada vez que se desee hacer operaciones sobre una fila de la tabla. Si se acompaña del modificador WHEN, se establece una restricción; el trigger solo actuará, sobre las filas que satisfagan la restricción.
Borrar un Trigger
Si se desea eliminar (borrar) un trigger, se usa la instrucción:
SQL> DROP TRIGGER name
SQL> DROP TRIGGER name
Modificar un Trigger
Si se desea (modificar) un trigger, se usa la instrucción:
ALTER TRIGGER trigger_name
ON table
[WITH ENCRYPTION]
{
{FOR { [DELETE] [,] [UPDATE] [,][INSERT] }
[NOT FOR REPLICATION]
AS
sql_statement [...n]
}
|
{FOR { [INSERT] [,] [UPDATE] }
[NOT FOR REPLICATION]
AS
{ IF UPDATE (column)
[{AND | OR} UPDATE (column)]
[...n]
| IF (COLUMNS_UPDATED() {bitwise_operator} updated_bitmask)
{ comparison_operator} column_bitmask [...n]
}
sql_statement [...n]
}
}
[WITH ENCRYPTION]
{
{FOR { [DELETE] [,] [UPDATE] [,][INSERT] }
[NOT FOR REPLICATION]
AS
sql_statement [...n]
}
|
{FOR { [INSERT] [,] [UPDATE] }
[NOT FOR REPLICATION]
AS
{ IF UPDATE (column)
[{AND | OR} UPDATE (column)]
[...n]
| IF (COLUMNS_UPDATED() {bitwise_operator} updated_bitmask)
{ comparison_operator} column_bitmask [...n]
}
sql_statement [...n]
}
}