Volver a la página principal
lunes 10 febrero 2025
5

Cómo insertar en una tabla de MySQL una variable desde una función

En MySQL, una función almacenada (FUNCTION) devuelve un solo valor, por lo que no se puede realizar directamente una inserción (INSERT). Sin embargo, se puede usar la función dentro de una consulta INSERT INTO.

Usando una función almacenada para insertar valores

1. Crear una función que retorne un valor

DELIMITER //

CREATE FUNCTION obtener_valor()
RETURNS VARCHAR(100)
DETERMINISTIC
BEGIN
    RETURN 'Hola desde la función';
END //

DELIMITER ;

2. Usar la función en un INSERT INTO

INSERT INTO mi_tabla (columna1) VALUES (obtener_valor());

Alternativa: Usar un procedimiento almacenado (PROCEDURE)

Si se necesita insertar directamente desde una función almacenada, la mejor opción es usar un procedimiento almacenado (PROCEDURE) en lugar de una FUNCTION:

DELIMITER //

CREATE PROCEDURE insertar_valor()
BEGIN
    INSERT INTO mi_tabla (columna1) VALUES ('Valor insertado desde el procedimiento');
END //

DELIMITER ;

Llamar al procedimiento

CALL insertar_valor();
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer