Dans le contexte de la base de données MySQL, quelle est la différence entre ces 3 termes:
Les fonctions intégrées telles que les fonctions date-heure (par exemple WEEKDAY()
etc.) sont également considérées comme quoi?
Google est ton ami. La première correspondance pour "procédure de fonction de routine mysql" est la suivante: http://dev.mysql.com/doc/refman/5.0/en/stored-routines-syntax.html
Un résumé rapide:
Une routine stockée est soit une procédure soit une fonction.
Une procédure est invoquée à l'aide d'une instruction CALL et ne peut renvoyer des valeurs qu'à l'aide de variables de sortie.
Une fonction peut être appelée à l'intérieur d'une instruction comme n'importe quelle autre fonction et peut renvoyer une valeur scalaire.
Ici, j'ai essayé de résumer les différences entre les fonctions et les procédures:
SELECT func_name FROM DUAL
alors que les procédures ne le peuvent pas.Différence entre la fonction MySQL et la procédure mysql
Fonction MYSQL
Il doit renvoyer de la valeur.
IN
,OUT
etINOUT
ne peuvent pas être utilisés dans la fonction. Mais le type de données de retour doit être déclaré lors de la création d'une fonction. La fonction peut être appelée à partir d'une instruction SQL. La fonction renvoie une valeur.
Procédure MYSQL
Les valeurs de retour ne sont pas obligatoires mais peuvent être utilisées avec le paramètre OUT pour traiter les retours. Peut utiliser le
IN
|OUT
|INOUT
paramètres. La procédure ne peut pas être appelée à partir de l'instruction SQL. retourne plusieurs valeurs en utilisant les paramètresOUT
ouINOUT
.
PROCÉDURES VS FONCTIONS
1. PROCEDURES may or may not return a value but FUNCTION must return a value 2. PROCEDURES can have input/output parameter but FUNCTION only has input parameter. 3. We can call FUNCTION from PROCEDURES but cannot call PROCEDURES from a function. 4. We cannot use PROCEDURES in SQL statement like SELECT, INSERT, UPDATE, DELETE, MERGE etc. but we can use them with FUNCTION. 5. We can use try-catch exception handling in PROCEDURES but we cannot do that in FUNCTION. 6. We can use transaction in PROCEDURES but it is not possible in FUNCTION.
La fonction doit renvoyer une valeur mais dans la procédure stockée, elle est facultative (la procédure peut retourner zéro ou n valeurs). Les fonctions ne peuvent avoir que des paramètres d'entrée, tandis que les procédures peuvent avoir des paramètres d'entrée/sortie. Les fonctions peuvent être appelées depuis Procedure alors que les procédures ne peuvent pas être appelées depuis Function.