Beruflich Dokumente
Kultur Dokumente
DISPARADORES EN
SQL
SINTAXIS GENERAL DE UN
DISPARADOR EN SQL:1999
CREAR O REEMPLAZAR UN DISPARADOR
SINTAXIS GENERAL DE UN
DISPARADOR EN SQL:1999
Temporalidad del evento
BEFORE Operacin El cuerpo del disparador debe
ejecutarse antes del evento que causa la activacin del
disparador
EVENTO
CONDICIN
SINTAXIS GENERAL DE UN
DISPARADOR EN SQL:1999
SINTAXIS GENERAL DE UN
DISPARADOR EN SQL:1999
Granularidad del evento
Ej:
1) CREATE OR REPLACE TRIGGER emp
BEFORE INSERT ON empleado
..
2) CREATE OR REPLACE TRIGGER salar
AFTER DELETE OF salario ON empleado
SINTAXIS GENERAL DE UN
DISPARADOR EN SQL:1999
SINTAXIS GENERAL DE UN
DISPARADOR EN SQL:1999
WHEN condicin
Para referirnos al valor de la fila
nivel de fila)
OLD
NEW
Operadores relacionales:
= <>
Operadores lgicos:
AND, OR, NOT
SINTAXIS GENERAL DE UN
DISPARADOR EN SQL:1999
EJEMPLO
END Ejemplo-columna;
/
ACTIVAR/DESACTIVAR DE
DISPARADORES
EJEMPLO
CREATE TRIGGER Ejemplo_sentencia
AFTER DELETE ON tabla1
REFERENCING OLD AS anterior
BEGIN
DELETE FROM tabla2 WHERE
tabla2.cod=anterior.cod;
END Ejemplo_sentencia;
/
Un disparador especfico:
OTRAS FUNCIONES
OTRAS FUNCIONES
Eliminar un disparador
Sentencias SQL
Subprogramas escritos en PL/SQL
Declaracin de variables
Dentro de un disparador se pueden declarar variables que
se utilizarn dentro del cuerpo del mismo.
RAISE_ERROR_APPLICATION (nro_error,
fila
CREATE...
BEFORE...
[FOR EACH ROW ...]
DECLARE
Declaracin de variables
Crea una variable
BEGIN
nombre del mismo
...
tipo que el de la
Nombre CONSTANT NUMBER:=valor;
columna
nombrecolumna de la
nombre TIPO;
tabla nombretabla
nombre nombretabla.nombrecolumna%TYPE;
nombre nombretabla%ROWTYPE;
Crea una variable nombre del
tipo de la tabla. Para asignar el
valor de una columna se pone:
nombre.nombrecolumna
END IF;
...
END ejemplo;
pueden:
Leer o modificar una tabla mutante
Leer o modificar claves primarias o ajenas de
una tabla de restriccin
utilizacin de paquetes
Disparadores de sustitucin
Disparadores de sustitucin