0% encontró este documento útil (0 votos)
2 vistas2 páginas

Ejemplo de Inventario en MySQL

El documento presenta un ejemplo de un sistema de inventario en MySQL, que incluye la creación de una base de datos y tablas para productos, existencias y movimientos. Se implementan triggers para actualizar automáticamente las existencias y calcular el total de cada movimiento. Además, se incluyen ejemplos de inserciones de productos, existencias y movimientos en el sistema.

Cargado por

olgadelia
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas2 páginas

Ejemplo de Inventario en MySQL

El documento presenta un ejemplo de un sistema de inventario en MySQL, que incluye la creación de una base de datos y tablas para productos, existencias y movimientos. Se implementan triggers para actualizar automáticamente las existencias y calcular el total de cada movimiento. Además, se incluyen ejemplos de inserciones de productos, existencias y movimientos en el sistema.

Cargado por

olgadelia
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

EJEMPLO INVENTARIO EN MYSQL

CREATE DATABASE INVENTARIO;


USE INVENTARIO;

--Tabla de Productos
CREATE TABLE PRODUCTOS(
PRO_CODIGO_K VARCHAR(20) NOT NULL,
PRO_DESCRIPCION VARCHAR(120) NOT NULL,
PRIMARY KEY ( PRO_CODIGO_K)
);

--Tabla para las existencias del producto


CREATE TABLE EXISTENCIAS(
PRO_CODIGO_K VARCHAR(20) NOT NULL,
EXI_LOTE VARCHAR(20) NOT NULL,
EXI_CANTIDAD DOUBLE NOT NULL,
PRIMARY KEY ( PRO_CODIGO_K,EXI_LOTE ),
FOREIGN KEY( PRO_CODIGO_K ) REFERENCES PRODUCTOS ( PRO_CODIGO_K )
);

--Tabla para los mivimientos: entrada o salida


CREATE TABLE MOVIMIENTOS(
MOV_CODIGO_K INTEGER NOT NULL,
MOV_MOVIMIENTO VARCHAR(3) DEFAULT 'ENT',
MOV_FECHA DATE,
PRO_CODIGO_K VARCHAR(20),
EXI_LOTE VARCHAR(20),
MOV_COSTO DOUBLE,
MOV_CANTIDAD DOUBLE,
MOV_TOTAL DOUBLE,
PRIMARY KEY (MOV_CODIGO_K,PRO_CODIGO_K,EXI_LOTE),
FOREIGN KEY( PRO_CODIGO_K ) REFERENCES PRODUCTOS ( PRO_CODIGO_K )
);

/* Crea trigger con nombre MOVIMIENTO_TRIGGER


se ejecuta antes de insertar que calcula el total y actualiza existencia
*/

/*CAMBIO EL dELIMITADOR PARA PODER EJECUTAR EL TRIGGER*/


DELIMITER $$

CREATE OR REPLACE TRIGGER MOVIMIENTO_TRIGGER


BEFORE INSERT ON MOVIMIENTOS
FOR EACH ROW
BEGIN

IF NEW.MOV_MOVIMIENTO = 'ENT' THEN


UPDATE EXISTENCIAS
SET EXI_CANTIDAD = EXI_CANTIDAD + NEW.MOV_CANTIDAD
WHERE PRO_CODIGO_K = NEW.PRO_CODIGO_K AND EXI_LOTE=NEW.EXI_LOTE;
EJEMPLO INVENTARIO EN MYSQL

END IF;

IF NEW.MOV_MOVIMIENTO = 'SAL' THEN


UPDATE EXISTENCIAS
SET EXI_CANTIDAD = EXI_CANTIDAD - NEW.MOV_CANTIDAD
WHERE PRO_CODIGO_K = NEW.PRO_CODIGO_K AND EXI_LOTE=NEW.EXI_LOTE;
END IF;

SET NEW.MOV_TOTAL=NEW.MOV_COSTO*NEW.MOV_CANTIDAD;

END
$$
DELIMITER ;

--Trigger para calcular el total de cada movimiento


DELIMITER $$

CREATE OR REPLACE TRIGGER MOVTOTAL_TRIGGER


BEFORE INSERT ON MOVIMIENTOS
FOR EACH ROW
BEGIN
SET NEW.MOV_TOTAL=NEW.MOV_COSTO*NEW.MOV_CANTIDAD;

END
$$

DELIMITER ;

--Insertar producto
INSERT INTO PRODUCTOS(PRO_CODIGO_K,PRO_DESCRIPCION) VALUES("1","PASTEL 2Kg");

--Insertar existencia
INSERT INTO EXISTENCIAS VALUES("1","1",30);

--Insertar movimientos
INSERT INTO
MOVIMIENTOS(MOV_CODIGO_K,MOV_MOVIMIENTO,MOV_FECHA,PRO_CODIGO_K,EXI_LOTE,MOV_COSTO,M
OV_CANTIDAD) VALUES(1,"ENT","2024/10/30","1","1",35,10);

INSERT INTO
MOVIMIENTOS(MOV_CODIGO_K,MOV_MOVIMIENTO,MOV_FECHA,PRO_CODIGO_K,EXI_LOTE,MOV_COSTO,M
OV_CANTIDAD) VALUES(2,"SAL","2024/10/30","1","1",35,15);

También podría gustarte