Tengo 3 Tablas
FACTURAV --> Factura de Venta
nfactura
id_fv (PK)
id_s
fvmonto
fechaf
DFACTURAV --> Detalle de Factura
id_av (PK)
id_r (FK)
id_fv (FK)
cantidad
montoav
REPUESTOS --> Artículo de Factura
id_r (PK)
codigo_r
pieza
descripcion
costo
cantidad
Cuando elimino una factura lo hago con el id_fv está a su vez me borra los id_av (detalles de facturas)que estén asociados a id_fv. Es decir, puede ser un id_av con dos mouse otro id_av con dos teclados y estos a su vez a una factura asociada id_fv. Entonces lo que yo quiero hacer es que cuando esto ocurra (se elimine la factura), en la base de datos un disparador me revierta el proceso sumando la cantidad que había en el detalle de factura de ese articulo en la cantidad que hay en respuestos, ya que como se eliminó la factura esos artículos estan nuevamente disponibles... Yo no tengo nada de experiencia en esto, lo entiendo por encima y lo hice de esta manera pero no me dio:
Código SQL:
Ver original
CREATE DEFINER = `root`@`localhost` TRIGGER `SumoInventario` BEFORE DELETE ON `dfacturav` FOR EACH ROW UPDATE repuestos SET cantidad = cantidad + cantidad.dfacturav WHERE id_r = id_r.dfacturav
Entonces me dice que desconoce de id_r.dfacturav u de cantidad.dfacturadv y le quite despues del punto quedando así
Código SQL:
Pero de esta manera lo que hace es que todos los id_r de respuestos los suma el doble y no la cantidad de el que aparece en dfacturav , ademas que solo quiero el id_r que esta en dfacturav... Entonces podría alguien ayudarme a corregir el error de sintaxis ? Adjunto la imagen como lo tengo ahora en phpmyadmin Ver original
CREATE DEFINER = `root`@`localhost` TRIGGER `SumoInventario` BEFORE DELETE ON `dfacturav` FOR EACH ROW UPDATE repuestos SET cantidad = cantidad + cantidad WHERE id_r = id_r
Muchas gracias por la colaboración que me puedan prestar.
[/url]