Maison > base de données > tutoriel mysql > le corps du texte

Comment accéder dynamiquement aux tables dans les fonctions de procédure stockée ?

Mary-Kate Olsen
Libérer: 2024-11-06 11:59:02
original
1000 Les gens l'ont consulté

How to Access Tables Dynamically in Stored Procedure Functions?

Noms de table dynamiques dans la fonction de procédure stockée

Question :

Comment une procédure stockée peut-elle La fonction accède dynamiquement à une table en fonction d'un paramètre passé, en évitant l'erreur « Le SQL dynamique n'est pas autorisé dans la fonction ou le déclencheur stocké » ?

Réponse :

Pendant que le SQL dynamique n'est pas autorisé dans les fonctions stockées, il existe des approches alternatives. Une option consiste à créer une procédure stockée avec un paramètre OUT et à utiliser des instructions préparées pour créer dynamiquement l'instruction SQL.

Solution :

CREATE PROCEDURE getName
(IN tableName VARCHAR(50), IN myId INT(11), OUT myName VARCHAR(50))
BEGIN

  SET @GetName =
    CONCAT('SELECT name INTO @var1 FROM ', tableName, ' WHERE>
Copier après la connexion

Exemple Utilisation :

SET @tableName = 'tbl';
SET @myId = 1005;
SET @name = NULL;
CALL getName(@tableName, @myId, @name);
SELECT @name;
Copier après la connexion

Cette solution de contournement fournit un moyen d'accéder dynamiquement aux tables dans les fonctions de procédure stockée à l'aide d'instructions préparées et de paramètres OUT.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal