En una
tabla se pueden realizar operación insert, update y delete que son procesos de modificación
de datos, las tablas pueden realizar validaciones de esos datos que se están agregando,
quitando o modificando, asegurando con esto la integridad de la base de datos
es decir protegiendo la regla de negocio.
Para
realizar esta validación se utiliza un objeto de base de datos llamado trigger
el cual será invocado al momento de ejecutar una operación insert, update o
delete, los disparadores no son ejecutados por el usuario, estos son automáticamente
llamados al intentar ejecutar un proceso DML (Insert, Update, Delete) sobre una
tabla que tenga asociado un trigger.
Create or replace trigger nombre_disparador
{before, after}
{insert , update , delete[of campos]}
On nombre_table
for each row
When condición
Begin
Proceso a ejecutar
End nombre_disparador;
Descripción:
1-
(Before, after): Indica el momento en que se realiza
la validación, es decir antes, después o en el instante que se ejecuta el
insert, update o delete.
2-
(Insert, update,delete): Indica la operación que activara el
disparador, es decir el disparador reaccionara cuando se aplique una inserción,
actualización o eliminación de datos, En la instrucción update( of campos), se le deben indicar los campos que activaran el
disparador.
3-
for each row: Indica que la validación la realizada por cada fila
afectada.
Ejemplo:
CREATE TABLE amigos(
Nombre VARCHAR2(200)
);
CREATE OR REPLACE TRIGGER disp_amigos
AFTER INSERT ON amigos
FOR EACH ROW
BEGIN
IF :NEW.nombre = 'MONICA'
THEN
RAISE_APPLICATION_ERROR(-20010, 'Este nombre no está permitido en la base
de datos');
END IF;
END disp_amigos;
INSERT INTO amigos (NOMBRE) VALUES ('MONICA');
Esta inserción provocaria un error.
INSERT INTO amigos (NOMBRE) VALUES ('MONICA');
Esta inserción provocaria un error.
gracias colega me sirvo de referencia
ResponderEliminar