Maison >base de données >tutoriel mysql >Comment puis-je créer et utiliser Dynamic SQL dans des procédures stockées MySQL ?

Comment puis-je créer et utiliser Dynamic SQL dans des procédures stockées MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-23 07:19:17710parcourir

How Can I Build and Use Dynamic SQL within MySQL Stored Procedures?

Création de SQL dynamique dans les procédures stockées MySQL

Le SQL dynamique, introduit dans MySQL 5.0.13, permet aux procédures stockées de construire des instructions SQL au moment de l'exécution .

Comment créer et utiliser Dynamic SQL dans un fichier stocké Procédure :

Créez une procédure stockée comme suit :

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 ;

Explication :

  • Définissez la variable @s pour stocker l'instruction SQL dynamique.
  • Utilisez l'instruction PREPARE pour préparer l'instruction SQL dynamique pour exécution.
  • Exécutez l'instruction préparée à l'aide de EXECUTE.
  • Désalouez l'instruction préparée à l'aide de DEALLOCATE PREPARE.

Exemple :

Pour sélectionner une colonne spécifique parmi un spécifié table :

CALL dynamic('employees', 'salary');

Remarque :

Le SQL dynamique n'est pas pris en charge dans les fonctions ou les déclencheurs. Pour plus d'informations, reportez-vous à la documentation MySQL.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn