You are on page 1of 4

TRIGGERS - ORACLE CON EL LA BASE DE DATOS HR

select * from regions;

INSERT INTO regions (REGION_ID, REGION_NAME) VALUES ('5','ESPAÑA');

UPDATE regions set REGION_NAME='Perú'

Where REGION_ID = 5;

DELETE FROM REGIONS

WHERE REGION_ID = 5;

CREATE TABLE regions_temp (

usuario varchar2(30),

fecha date,

region_id number,

region_anterior VARCHAR(40),

region_nueva varchar(40)

);

select * from regions_temp;

CREATE OR REPLACE TRIGGER tr_actualizar_nombre_region

before update of region_name

on

regions

for each row

begin

insert into regions_temp

values(user,sysdate,:new.region_id,:old.region_name,:new.region_name);

end tr_actualizar_nombre_region;
TRIGGER - EJEMPLO 02
create table especialidad(

idespecialidad int primary key,

carrera varchar(50)

);

insert into especialidad values(1,'computacion');

insert into especialidad values(2,'Secretariado');

insert into especialidad values(3,'Administracion');

create table alumnos(

idalumno int primary key,

nombre varchar(50),

dni int,

idespecialida int,

foreign key(idespecialida) references especialidad(idespecialidad)

);

insert into alumnos values(100,'Rosie',73031642,1);

insert into alumnos values(101,'Alessia',73031643,2);

insert into alumnos values(102,'Alijhery',73031648,3);

create table unidad_didacticas(

id_unidad int primary key,

curso varchar(50),

idalumno int,

foreign key(idalumno ) references alumnos (idalumno)

);

insert into unidad_didacticas values(200,'Algoritmos',100);

insert into unidad_didacticas values(201,'Hacking',101);

insert into unidad_didacticas values(202,'Admin',102);


----- TABLA TEMPORAL

create table especialidad_temp(

usuario varchar(30),

fecha date,

movimiento varchar(30),

idespecialidad int,

carrera_anterior varchar(30),

carrera_nuevo varchar(30)

);

--TRIGGER PARA ACTUALIZAR--

create or replace trigger tr_actualizar_especialidad_temp2

after update of carrera

on especialidad

for each row

begin

insert into especialidad_temp

values(user,sysdate,'Actualizar',:new.idespecialidad,:old.carrera,:new.carrera);

end tr_actualizar_especialidad_temp2;

select * from especialidad;

update especialidad set carrera='Medicina'

where idespecialidad= 1;

select * from especialidad_temp;

--TRIGGER PARA INSERTAR--

create or replace trigger tr_insertar_especialidad_temp

after insert

on especialidad

for each row


begin

insert into especialidad_temp

values(user,sysdate,'Insertar',:new.idespecialidad,:new.carrera,:old.carrera);

end tr_insertar_especialidad_temp;

select * from especialidad;

select * from especialidad_temp;

insert into especialidad values(7,'Producción');

----- TRIGGER PARA ELIMINAR ---

create or replace trigger tr_eliminar_especialidad_temp3

after delete on

especialidad

for each row

begin

insert into especialidad_temp

values(user,sysdate,'Eliminar',:new.idespecialidad,:new.carrera,:old.carrera);

end tr_eliminar_especialidad_temp3;

select * from especialidad;

delete from especialidad where idespecialidad=6;

select* from especialidad_temp;

You might also like