¿Cómo hacer un Triggers?
Hola, buen día por favor si no es mucha la molestia necesito su ayuda.
ok necesito hacer un trigger para un trabajo del cole que es de mucha importancia para pasar la clase y no se como hacerlo porque no entiendo el tema de trigger.
COMIENZO A EXPLICAR.
me dieron un código para crear 5 tablas las cuales se llaman P1,P2,P3,P4,P5 me piden hacer un triggers a nivel de P5 que al insertar un dato que en este caso serian números este me sume (actualice) el numero ingresado tanto a P1,P2,P3,P4, y al igual si yo elimino un numero en p5 este afecte las sumas de P1,P2,P3,P4. Me dijeron que no creemos mas tablas solo crearemos el triggers y que usáramos el NEW y el OLD.
NOTA: las modificaciones van de abajo hacia arriba osea de la tabla P4 a la P1
le dejo las tablas que usaremos
create table p1_entidades
(
corrent number(2) not null,
programado number(13,2) default 0 not null,
constraint p1_key00 primary key (corrent)
);
insert into p1_entidades values(1,0);
create table p2_programas
(
corrent number(2) not null,
programa number(2) not null,
nomprog varchar2(200) not null,
programado number(13,2) default 0 not null,
constraint p2_key00 primary key (corrent,programa),
constraint rp2_p1 foreign key (corrent) references p1_entidades (corrent)
);
insert into p2_programas values(1,1,'mejoramiento de hospitales',0);
insert into p2_programas values(1,2,'mejoramiento de escuelas',0);
create table p3_subprogramas
(
corrent number(2) not null,
programa number(2) not null,
subprog number(2) not null,
nomsubprog varchar2(200) null,
programado number(13,2) default 0 not null,
constraint p3_key00 primary key (corrent,programa,subprog),
constraint rp3_p2 foreign key (corrent,programa) referencesp2_programas (corrent,programa)
);
insert into p3_subprogramas values(1,1,2,'hospitales de tegucigalpa',0);
insert into p3_subprogramas values(1,2,2,'escuelas de tegucigalpa',0);
create table p4_proyectos
(
corrent number(2) not null,
programa number(2) not null,
subprog number(2) not null,
proyecto number(2) not null,
nomproy varchar2(200) null,
programado number(13,2) default 0 not null,
constraint p4_key00 primary key (corrent,programa,subprog,proyecto),
constraint rp4_p3 foreign key (corrent,programa,subprog) referencesp3_subprogramas (corrent,programa,subprog)
);
insert into p4_proyectos values(1,1,2,1,'nuevo hospital central',0);
insert into p4_proyectos values(1,2,2,1,'instituto central vicente cáceres',0);
create table p5_partidas
(
corrent number(2) not null,
programa number(2) not null,
subprog number(2) not null,
proyecto number(2) not null,
partida number(3) not null,
programado number(13,2) default 0 not null,
constraint p6_key00 primary key (corrent,programa,subprog,proyecto,partida),
constraint cp6_programado check (programado >= 0),
constraint rp6_p5 foreign key (corrent,programa,subprog,proyecto) references p4_proyectos (corrent,programa,subprog,proyecto)
);
insert into p5_partidas values(1,1,2,1,451,5000000);
insert into p5_partidas values(1,1,2,1,355,4000000);
insert into p5_partidas values(1,1,2,1,356,1000000);
insert into p5_partidas values(1,2,2,1,111,3500000);