Disparadores tipo After - AGMadera/BasedeDatos2 GitHub Wiki
Comúnmente se usan para automatizar tareas.
Problema: Se desea realizar un backup en un sistema de base de datos en ORACLE. Se tiene la tabla USUARIO y se requiere que al guardar un usuario se generen 2 registros en las tablas siguientes: MENORES y MAYORES.
Se deberá aplicar la siguiente regla:
Al insertar un usuario cuya edad sea menor de 18 años se deberá ademas guardar en la tabla MENORES.
Si es mayor o igual a 18, deberá guardarse ademas en la tabla MAYORES.
CREATE TABLE USUARIOS_XXX(
NOMBRE VARCHAR2(120),
EDAD INTEGER);
CREATE TABLE XXX_MAYORES(
NOMBRE VARCHAR2(120),
EDAD INTEGER);
CREATE TABLE XXX_MENORES(
NOMBRE VARCHAR2(120),
EDAD INTEGER);
CREATE OR REPLACE TRIGGER RESPALDO_XXX AFTER INSERT ON USUARIOS_XXX
FOR EACH ROW
BEGIN
IF :NEW.EDAD<18 THEN
INSERT INTO XXX_MENORES VALUES(:NEW.NOMBRE, :NEW.EDAD);
ELSE
INSERT INTO XXX_MAYORES VALUES (:NEW.NOMBRE, :NEW.EDAD);
END IF;
END;
/