Consulta SQL
Publicado por li2932 (2 intervenciones) el 29/04/2020 22:02:59
Hola buenas tengo que realizar un disparador que cuando se registre un nuevo parte de accidentes, si la condicion de responsable es "S" añada un asterisco (*) al nombre del cliente y cambie el tipo de seguro al valor ‘S’.
Llevo realizado esto pero se me ejecuta en todas las filas de las tablas. Necesito ayuda.
Llevo realizado esto pero se me ejecuta en todas las filas de las tablas. Necesito ayuda.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
create or replace trigger trigger before insert on s_vehic_accid for each row
DECLARE
vdni s_clientes.dni%type;
vmatri s_vehiculos.matricula%type;
vnombre s_clientes.nombre%type;
BEGIN
Select matricula into vmatri from s_vehiculos, s_clientes where s_clientes.dni=s_vehiculos.dni_cliente and matricula=:new.matricula;
select nombre into vnombre from s_clientes, s_vehiculos where s_clientes.dni=s_vehiculos.dni_cliente and matricula=:new.matricula;
if(:new.responsable='S') then
update s_vehiculos set tipo_seguro = 'S' where vmatri=:new.matricula;
update s_clientes set nombre= vnombre || '_' || '*' where vmatri=:new.matricula;
end if;
END;
Valora esta pregunta


0