Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So haben Sie dynamisches SQL in einer gespeicherten MySQL-Prozedur

Nach 5.0.13 können Sie in gespeicherten Prozeduren dynamisches SQL verwenden:

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 ;

Dynamisches SQL funktioniert nicht in Funktionen oder Triggern. Siehe die MySQL-Dokumentation für weitere Verwendungszwecke.