sql >> Base de Datos >  >> RDS >> Mysql

Cómo tener SQL dinámico en el procedimiento almacenado de MySQL

Después de 5.0.13, en los procedimientos almacenados, puede usar SQL dinámico:

delimiter // 
CREATE PROCEDURE dynamic(IN tbl CHAR(64), IN col CHAR(64))
BEGIN
    SET @s = CONCAT('SELECT ',col,' FROM ',tbl );
    PREPARE stmt FROM @s;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
END
//
delimiter ;

SQL dinámico no funciona en funciones o disparadores. Consulte la documentación de MySQL para más usos.