Je dois effectuer la même procédure pour plusieurs tables dans ma base de données. Le poblem est que cette procédure contient la ligne suivante:MySQL: Une procédure stockée pour plusieurs tables
DECLARE tableIt CURSOR FOR select id from table where column=inputParam ;
table
est la table la procédure fonctionne avec. Et je ne peux pas trouver un moyen de rendre ce nom de table dynamique, c'est-à-dire de le lire à partir d'un paramètre d'entrée.
Actuellement, j'ai 8 procédures différentes (une pour chaque table) qui ne se différencient que par un mot (le nom de la table). C'est vraiment une douleur car je dois faire tous les changements à la procédure 8 fois.
Est-il possible de paramétrer l'instruction select pour le CURSOR afin que je puisse avoir une seule procédure ??
Bonne idée, je pense qu'il est préférable d'utiliser une table temporaire, si une vue est un objet global donc il n'y a pas de fil de sécurité si vous utilisez ce (deux connexions peuvent essayer de créer la même vue pour des tables différentes.) – GetFree
Le problème avec la table temporaire est qu'elle va être une insertion et peut être lente Vous pouvez toujours avoir un problème avec l'accès simultané à cette table temporaire. semble aussi simple pourquoi ne pas le tirer de votre code java/perl/php? Vous pouvez ensuite avoir des requêtes dynamiques construites. – isobar