Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Creación de Trigger (Disparador) PHPMYADMIN

Estas en el tema de Creación de Trigger (Disparador) PHPMYADMIN en el foro de Mysql en Foros del Web. Buenas antes que nada un cordial saludo le escribo para ver si me pudieran ayudar con la creación de un Trigger en PHPMYADMIN Tengo 3 ...
  #1 (permalink)  
Antiguo 28/01/2014, 14:45
 
Fecha de Ingreso: octubre-2013
Ubicación: Caracas
Mensajes: 24
Antigüedad: 11 años
Puntos: 0
Pregunta Creación de Trigger (Disparador) PHPMYADMIN

Buenas antes que nada un cordial saludo le escribo para ver si me pudieran ayudar con la creación de un Trigger en PHPMYADMIN

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
  1. 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:
Ver original
  1. CREATE DEFINER =  `root`@`localhost` TRIGGER `SumoInventario` BEFORE DELETE ON  `dfacturav` FOR EACH ROW UPDATE repuestos SET cantidad = cantidad + cantidad WHERE id_r = id_r
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

Muchas gracias por la colaboración que me puedan prestar.

[/url]

Etiquetas: bases-de-datos-general, creación, disparador, phpmyadmin, tabla, trigger
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:41.