Les procédures stockées MySQL ne prennent pas en charge les paramètres nommés dans n'importe quel ordre. La demande de fonctionnalité a été faite dans le passé, par exemple:
Comme vous avez découvert, la solution de contournement à utiliser des expressions pour définir des variables de session n'a rien à voir avec l'ordre des paramètres. En d'autres termes, vous pouvez effectuer les opérations suivantes:
CALL stored_procedure(@param1 := "foo1", @param2 := "foo2");
Mais les valeurs « foo1 » et « foo2 » sont toujours les premier et second paramètres, respectivement.
Si vous souhaitez plus de flexibilité, je vous suggère d'écrire votre procédure stockée pour accepter les paramètres , mais utilisez directement les variables de session.
SET @param1 := "foo1", @param2 := "foo2";
CALL stored_procedure();
Dans votre procédure, vous devez ensuite référencer les variables comme @param1
, @param2
, etc.
CREATE PROCEDURE stored_procedure()
BEGIN
SELECT * FROM mytable WHERE col1 = @param1 AND col2 = @param2;
END
Lire http://dev.mysql.com/doc/refman/5.7/en/user-variables.html
Salut Pentium10, unfortunatelly il ne me aider. J'ai besoin de paramètres vraiment nommés. Merci quand même. – Worker
Vous ne pouvez pas faire cela. Mais vous pouvez passer un nom et une variable par paire. – Pentium10
Ah! Je vois! Cela semble beaucoup mieux. Gimme quelques secondes pour le test s'il vous plaît :-) – Worker