MySQL - Error 1242 en trigger update

 
Vista:

Error 1242 en trigger update

Publicado por Ayudapls (4 intervenciones) el 28/05/2017 13:38:07
Buenas, necesito q le echen un vistazo a mi trigger:

1
2
3
4
5
6
7
8
9
10
11
12
use tiendainformatica;
delimiter $$
drop trigger if exists t4$$
create trigger t4 after update on articulo
for each row
begin
declare vselect decimal(10,2);
set vselect=(select new.precio from articulo ar join albaran al on ar.cod_art=al.cod_art join factura fa on cod_fac=cod_fact where ar.cod_art=new.cod_art);
update factura set importe=importe+vselect where cod_art=new.cod_art;
 
end$$
delimiter ;

Estoy intentando crear un trigger que al actualizar el precio de un articulo me actualice tambien el precio del importe total de la factura. Con este codigo me lo coje bien, pero a la hora de actualizar el precio me salta el error:
ERROR 1242 (21000): Subquery returns more than 1 row


Ayuda!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 796
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Error 1242 en trigger update

Publicado por xve (1151 intervenciones) el 29/05/2017 08:21:26
El problema creo que es que estas intentando asignar a la variable vselect mas de un registro... prueba así:

1
set vselect=(select new.precio from articulo ar join albaran al on ar.cod_art=al.cod_art join factura fa on cod_fac=cod_fact where ar.cod_art=new.cod_art LIMIT 1);

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar