Automatiza tus Operaciones
Los procedimientos almacenados son conjuntos de instrucciones SQL que se guardan en la base de datos y pueden ejecutarse cuando sea necesario. Son ideales para automatizar tareas repetitivas y mejorar la seguridad.
Crear un Procedimiento Almacenado
DELIMITER //
CREATE PROCEDURE registrar_pedido(
IN p_cliente_id INT,
IN p_producto_id INT,
IN p_cantidad INT
)
BEGIN
DECLARE v_precio DECIMAL(10,2);
-- Obtener precio del producto
SELECT precio INTO v_precio
FROM productos
WHERE id = p_producto_id;
-- Insertar pedido
INSERT INTO pedidos (cliente_id, fecha_pedido, total, estado)
VALUES (p_cliente_id, NOW(), v_precio * p_cantidad, pendiente);
-- Actualizar stock
UPDATE productos
SET stock = stock - p_cantidad
WHERE id = p_producto_id;
-- Retornar mensaje
SELECT Pedido registrado exitosamente as mensaje;
END //
DELIMITER ;Llamar un Procedimiento
CALL registrar_pedido(1, 5, 3);Procedimientos con Logica Condicional
DELIMITER //
CREATE PROCEDURE calcular_descuento(
IN p_monto DECIMAL(10,2),
OUT p_descuento DECIMAL(10,2)
)
BEGIN
IF p_monto > 10000 THEN
SET p_descuento = p_monto * 0.20;
ELSEIF p_monto > 5000 THEN
SET p_descuento = p_monto * 0.10;
ELSEIF p_monto > 1000 THEN
SET p_descuento = p_monto * 0.05;
ELSE
SET p_descuento = 0;
END IF;
END //
DELIMITER ;Ventajas y Desventajas
- Ventajas: Reducen trafico de red, mejoran seguridad, permiten logica compleja
- Desventajas: Pueden ser difficiles de debugear, menos portables, requieren conocimiento especifico