2016-05-18 6 views
0

Je suis nouveau sur les procédures stockées dans MySQLMySQL procédure stockée Réglage variable

Je me demande si, par exemple, j'ai une requête alors je diviser en variables telles que

SELECT A, B, C, FROM TABLE123 WHERE A = '123' 

Je diviser en variables à l'intérieur de la procédure stockée

SET @select = 'SELECT'; 
SET @column1= 'A'; 
SET @column2 = 'B'; 
SET @column3 = 'C'; 
SET @parameter = 'WHERE'; 
SET @equal = '='; 

Ensuite, à partir de là, je peux utiliser chaque partie ou la requête ou variable dans une instruction conditionnelle en fonction du jeu de paramètres lors de l'appel stocké procedu ré.

Je me demande si cela est autorisé comme pratique standard ou s'il provoquera des problèmes de performance.

Répondre

1

Je crois que c'est similaire à Dynamic SQL.

Voici une base how-to de base de MySQL Docs:

PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse'; 
SET @a = 3; 
SET @b = 4; 
EXECUTE stmt1 USING @a, @b; 
DEALLOCATE PREPARE stmt1; 

+------------+ 
| hypotenuse | 
+------------+ 
|   5 | 
+------------+ 

est ici un article écrit par un MVP SQL Server à propos The Curse and Blessings of Dynamic SQL, que vous pouvez lire. Bien que ce soit pour le serveur SQL, il pourrait y avoir des informations similaires pour mysql.