Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment avoir Dynamic SQL dans la procédure stockée MySQL

Après 5.0.13, dans les procédures stockées, vous pouvez utiliser SQL dynamique :

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 ;

Dynamic SQL ne fonctionne pas dans les fonctions ou les déclencheurs. Voir la documentation MySQL pour plus d'utilisations.