Partage
  • Partager sur Facebook
  • Partager sur Twitter

[mariadb] procédure drop table parametrable

    19 avril 2022 à 10:07:09

    Bonjour,

    Dans une procédure, je souhaite supprimer une table. Je ne connais le nom de cette table à l'avance car il est composé du résultat d'une requête SELECT.

    Je fais une requête du type : 

    SELECT CONCAT("table_", table_name) INTO _table FROM tables WHERE id = _id LIMIT 1;

    et ensuite :

    DROP TABLE _table;

    Mais j'ai l'erreur suivant :  Unknown table 'test._table'

    Pourtant quand je fais SELECT _table; j'ai bien le nom de ma table qui s'affiche.

    Auriez-vous une solution ?

    Merci,

    Matt...

    • Partager sur Facebook
    • Partager sur Twitter
      19 avril 2022 à 14:15:13

      Bonjour,

      Il n'est pas possible de rendre variable des noms de table ou de colonne.

      Si vraiment c'est ce que tu dois faire, tu vas devoir concaténer ta chaîne SQL et passer par des requêtes préparées "native" : MySQL :: MySQL 8.0 Reference Manual :: 13.5 Prepared Statements

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

      [mariadb] procédure drop table parametrable

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown