Guía rápida — Stored Procedures en MySQL
Cómo crear y usar procedimientos almacenados (SP) con ejemplos prácticos.
1. Sintaxis básica
DELIMITER //
CREATE PROCEDURE nombre_procedimiento()
BEGIN
SELECT 'Hola, mundo desde un Stored Procedure!';
END //
DELIMITER ;
Usamos DELIMITER
para que MySQL no corte el bloque antes de tiempo.
2. Con parámetros de entrada (IN)
DELIMITER //
CREATE PROCEDURE get_cliente(IN id_cliente INT)
BEGIN
SELECT nombre, email
FROM clientes
WHERE id = id_cliente;
END //
DELIMITER ;
-- Llamada:
CALL get_cliente(5);
3. Con parámetros de salida (OUT)
DELIMITER //
CREATE PROCEDURE contar_clientes(OUT total INT)
BEGIN
SELECT COUNT(*) INTO total FROM clientes;
END //
DELIMITER ;
-- Llamada:
CALL contar_clientes(@resultado);
SELECT @resultado;
4. Ejemplo completo con IN y OUT
DELIMITER //
CREATE PROCEDURE registrar_pedido(
IN id_cliente INT,
IN monto DECIMAL(10,2),
OUT nuevo_id INT
)
BEGIN
INSERT INTO pedidos(cliente_id, total, fecha)
VALUES (id_cliente, monto, NOW());
SET nuevo_id = LAST_INSERT_ID();
END //
DELIMITER ;
-- Llamada:
CALL registrar_pedido(3, 250.75, @id_pedido);
SELECT @id_pedido;
5. Buenas prácticas
- Usa
IN
para parámetros de entrada. - Usa
OUT
para devolver valores. - Documenta qué hace cada parámetro.
- Evita lógica muy compleja; considera triggers o funciones cuando corresponda.