elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Asignacion de variables a cursor mysql
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Asignacion de variables a cursor mysql  (Leído 1,595 veces)
d91

Desconectado Desconectado

Mensajes: 165


Ver Perfil
Asignacion de variables a cursor mysql
« en: 15 Septiembre 2019, 18:57 pm »

Hola a todos, estoy tratando de auditar el incremento del stock del inventario al realizar una compra, pero no he logrado asignar la variable del where del cursor, al parecer en mysql no se pueden pasar variables como parametros a los cursores. Ya que cuando activo el cursor la variable v_producto esta vacia.

Código
  1. CREATE TRIGGER Compra_Producto AFTER INSERT ON `detalle_compra` FOR EACH ROW
  2.                BEGIN
  3.                    DECLARE v_stock INT;
  4.                    DECLARE v_cantidad INT;
  5.                    DECLARE v_total INT;
  6.                    DECLARE v_producto BIGINT;
  7.  
  8.                    DECLARE cursor_compra CURSOR FOR
  9.                        SELECT stock FROM inventario WHERE producto_id = v_producto;
  10.  
  11.                    SET @v_producto = NEW.producto_id;
  12.                    SET @v_cantidad = NEW.cantidad;
  13.  
  14.                    OPEN cursor_compra;
  15.  
  16.                    LOOP
  17.                        FETCH cursor_compra INTO v_stock;
  18.                    END LOOP;
  19.  
  20.                    CLOSE cursor_compra;
  21.  
  22.                    SET @v_total = v_stock + v_cantidad;
  23.  
  24.                    UPDATE inventario SET stock = v_total WHERE producto_id = v_producto;
  25.  
  26.                END
  27.  


En línea

d91

Desconectado Desconectado

Mensajes: 165


Ver Perfil
Re: Asignacion de variables a cursor mysql
« Respuesta #1 en: 15 Septiembre 2019, 19:20 pm »

Hola, lo logre resolver de una un poco más sencilla, pero estoy pensando como devolver una excepcion en caso de disminuir el inventario en caso la cantidad que se egresa sea mayor al stock existente
Código
  1. CREATE TRIGGER Compra_Producto AFTER INSERT ON `detalle_compra` FOR EACH ROW
  2.                BEGIN
  3.  
  4.                    UPDATE inventario SET stock = (stock + NEW.cantidad) WHERE producto_id = NEW.producto_id;
  5.  
  6.                END
  7.  


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Variables en MySQL
Bases de Datos
Skeletron 5 7,503 Último mensaje 23 Febrero 2010, 01:45 am
por ^Tifa^
Ayuda:Asignacion de variables a un textbox de una base de datos en VB.NET(2008)
.NET (C#, VB.NET, ASP)
pilotillo 3 4,403 Último mensaje 6 Octubre 2011, 10:05 am
por pilotillo
C + MySQL, traspaso de variables a un query de MySQL en C. [Resuelto]
Programación C/C++
GisiNA 8 5,610 Último mensaje 9 Febrero 2014, 11:54 am
por GisiNA
Error en mysql funciones y variables.
PHP
turion 6 2,276 Último mensaje 14 Julio 2014, 15:56 pm
por turion
Declaracion de variables en trigger mysql
Bases de Datos
d91 1 12,528 Último mensaje 18 Enero 2017, 13:19 pm
por d91
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines