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

Existe-t-il un moyen d'exécuter du code dynamiquement dans MySQL, similaire à l'exécution immédiate dans Oracle ?

En fait, cela ne fonctionne pas comme ce que j'ai écrit. Je code juste comme :

set @preparedstmt = concat('SELECT tid, LENGTH(message) len FROM ? where tid=? and first=1');
prepare stmt from prepared_stmt;
execute stmt using v_tid;
drop prepare stmt;

Prenez juste soin du nom de la table, il ne doit pas être remplacé par l'espace réservé. Ainsi, le @preparedstmt doit être généré avec la méthode concat pour faire une déclaration, qui remplace simplement les paramètres dans les conditions par l'espace réservé, mais pas le nom de la table.