mysql (5.1) > créer une table avec le nom d'une variable

Je suis en train de créer une table avec un nom basé sur le courant de l'année et le mois(2011-09), mais MySQL ne semble pas comme ça.

SET @yyyy_mm=Year(NOW())+'-'+Month(NOW());
CREATE TABLE `survey`.`@yyyy_mm` LIKE `survey`.`interim`;
SHOW TABLES IN `survey`;

+-----------+
| interim   |
+-----------+
| @yyyy_mm  |
+-----------+

Si je ne CREATE TABLE; sans les tiques autour de @yyyy_mm, je reçois un générique erreur de syntaxe.

@yyyy_mm décide de 2020.

Les identificateurs ne sont pas des variables. Les Variables ne sont pas les identifiants. Cela nécessite l'utilisation de "SQL dynamique" -- c'est dégueulasse dans toutes les bases de données qui j'ai travaillé.
Voir stackoverflow.com/questions/190776/... et stackoverflow.com/questions/929244/... et stackoverflow.com/questions/5530755/...

OriginalL'auteur jacob | 2011-09-20