¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)
Cómo insertar datos en una tabla con un procedimiento almacenado en MySQL
Portada » Cómo insertar datos en una tabla con un procedimiento almacenado en MySQL
Anuncios
Publicidad

Cómo insertar datos en una tabla con un procedimiento almacenado en MySQL

En este tutorial aprenderás a insertar datos en una tabla llamada clientes utilizando un procedimiento almacenado en MySQL.

Los procedimientos almacenados son muy útiles porque permiten reutilizar código, mejorar la seguridad y centralizar la lógica dentro de la base de datos.


Paso 1: Seleccionar la base de datos

Lo primero es asegurarnos de que trabajamos en la base de datos correcta:

USE TiendaOnline;

Paso 2: Crear el procedimiento almacenado

Antes de crearlo, eliminamos el procedimiento si ya existe para evitar errores:

DROP PROCEDURE IF EXISTS insertar_datos_de_cliente_en_la_tabla_cliente;

Ahora cambiamos el delimitador (para que MySQL no confunda los puntos y comas internos del bloque):

DELIMITER //

CREATE PROCEDURE insertar_datos_de_cliente_en_la_tabla_cliente (
    IN pnombre VARCHAR(50),
    IN pemail VARCHAR(100),
    IN pciudad VARCHAR(50),
    IN pfecha_registro DATE
)
BEGIN
    INSERT INTO clientes (nombre, email, ciudad, fecha_registro)
    VALUES (pnombre, pemail, pciudad, pfecha_registro);
END //

DELIMITER ;

✅ Aquí hemos usado parámetros de entrada (IN) para enviar los valores al procedimiento.
El prefijo p (como en pnombre) nos ayuda a diferenciar los parámetros de las columnas.


Paso 3: Definir los valores que insertaremos

Asignamos los valores que queremos insertar en la tabla:

SET @pnombre = 'Nacho';
SET @pemail = 'nacho@mail.com';
SET @pciudad = 'Murcia';
SET @pfecha_registro = '2024-01-10';

Paso 4: Ejecutar el procedimiento

Llamamos al procedimiento y le pasamos las variables:

CALL insertar_datos_de_cliente_en_la_tabla_cliente (@pnombre, @pemail, @pciudad, @pfecha_registro);

Paso 5: Verificar los datos insertados

Comprobamos que los registros se hayan añadido correctamente:

SELECT * FROM clientes;

🔹 Consejos y errores comunes

  • Asegúrate de que la columna id_cliente sea AUTO_INCREMENT, para que no tengas que insertarla manualmente.
  • Revisa que los tipos y longitudes de los parámetros coincidan con los de la tabla.
  • Evita poner comentarios justo antes de DELIMITER, ya que puede provocar errores de sintaxis.

Acceso a la base de datos desde donde trabajaremos - Visitar ahora

Preguntas frecuentes sobre procedimientos almacenados en MySQL

1. ¿Qué es un procedimiento almacenado en MySQL?
Es un bloque de código SQL guardado en la base de datos que puedes ejecutar cuando lo necesites. Sirve para automatizar tareas como inserciones, consultas o actualizaciones.

2. ¿Cuál es la diferencia entre IN, OUT e INOUT en un procedimiento?

  • IN: se usa para enviar valores al procedimiento.
  • OUT: se usa para devolver valores desde el procedimiento.
  • INOUT: permite tanto enviar como devolver valores.

3. ¿Por qué usamos DELIMITER // al crear un procedimiento?
Para evitar que MySQL confunda el ; interno de las instrucciones con el final del procedimiento.

4. ¿Puedo reutilizar este procedimiento para insertar varios clientes?
Sí, solo tienes que llamar al procedimiento (CALL) cada vez que quieras insertar un cliente nuevo, pasando los valores correspondientes.

5. ¿Qué ventajas tiene usar procedimientos almacenados en lugar de sentencias SQL sueltas?
Los procedimientos almacenados mejoran la seguridad (al evitar inyecciones SQL), la eficiencia (se compilan una sola vez) y facilitan el mantenimiento del código.

Te puede interesar:

Seguir leyendo:

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)

Deja una respuesta

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)
error: Content is protected !!
Hablemos de informática
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.