Dans les versions MySQL 5.0.13 et ultérieures, le SQL dynamique peut être implémenté dans les procédures stockées.
Création d'instructions SQL dynamiques :
Pour créer des instructions SQL dynamiques, la fonction CONCAT() est utilisée pour concaténer des chaînes et créer dynamiquement des instructions SQL. Voici un exemple :
SET @s = CONCAT('SELECT ',col,' FROM ',tbl );
Dans l'exemple ci-dessus, @s contiendrait l'instruction SQL dynamique :
SELECT col FROM tbl
Préparation et exécution des instructions dynamiques :
Une fois l'instruction SQL dynamique construite, elle doit être préparée et exécuté :
PREPARE stmt FROM @s; EXECUTE stmt;
Désallocation des instructions préparées :
Après l'exécution, l'instruction préparée doit être désallouée pour libérer les ressources :
DEALLOCATE PREPARE stmt;
Limitations :
Dynamic SQL est pris en charge dans les procédures stockées, mais pas dans fonctions ou déclencheurs.
Exemple :
La procédure stockée suivante illustre le 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 ;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!