2010-04-21 17 views
61

En el contexto de base de datos MySQL, ¿cuál es la diferencia entre estos 3 términos:diferencias entre el procedimiento y la función y la rutina?

  • procedimiento almacenado;
  • rutina almacenada;
  • función almacenada.

P.S. Las funciones integradas como las funciones de fecha y hora, weekday() se consideran como qué?

+2

respuesta relacionada: [Procedimiento almacenado MySQL vs función] (http://stackoverflow.com/questions/3744209/mysql-stored-procedure-vs-function-which-would-i-use-when/13510102#13510102) , Encontré el enlace mientras mejoraba mi respuesta, por lo tanto, vinculé :) –

Respuesta

68

Google es tu amigo. El primer partido de "procedimiento de función rutina de MySQL" es la siguiente: http://dev.mysql.com/doc/refman/5.0/en/stored-routines-syntax.html

Un breve resumen:

Una rutina almacenada es o bien un procedimiento o una función.

Un procedimiento se invoca utilizando una instrucción CALL y solo puede devolver valores utilizando variables de salida.

Se puede llamar a una función desde el interior de una instrucción como cualquier otra función y puede devolver un valor escalar.

+13

Aunque estoy de acuerdo con el sentimiento de RTFM. Esta respuesta ahora la usa Google para mostrar un resultado en línea. – Realistic

27

diferencia entre la función y el procedimiento de MySQL MySQL

MYSQL función

Se debe devolver el valor. IN, OUT y INOUT no se pueden utilizar en la función. Pero return datatype debe declararse al crear una función. la función puede llamarse desde una instrucción SQL. Función return one values.

Procedimiento MYSQL

valores de retorno no es obligatorio, pero puede ser utiliza el parámetro OUT a devuelve el procedimiento. Puede usar el IN | OUT | INOUT parámetros. El procedimiento no se puede llamar desde la instrucción SQL. procedimiento devuelve múltiples valores utilizando los parámetros OUT o INOUT.

29

Aquí he tratado de resumir la diferencia entre la función y los procedimientos.

  1. A FUNCTION siempre devuelve un valor utilizando la declaración return. PROCEDURE puede devolver uno o más valores a través de parámetros o puede que no devuelva ninguno.
  2. Las funciones se usan normalmente para cálculos en los que normalmente se usan procedimientos para ejecutar la lógica comercial.
  3. A La función solo devuelve 1 valor. El procedimiento puede devolver múltiples valores (máximo 1024).
  4. El procedimiento almacenado siempre devuelve un valor entero de cero de forma predeterminada. Mientras que los tipos de retorno de función podrían ser valores escalares o de tabla o tabla.
  5. Los procedimientos almacenados tienen un plan de ejecución precompilado, donde las funciones no lo son.
  6. Una función puede ser invocada directamente por una instrucción SQL como seleccionar func_name desde dual mientras que los procedimientos no.
  7. El procedimiento almacenado tiene la seguridad y reduce el tráfico de la red y también podemos llamar al procedimiento almacenado en cualquier no. de aplicaciones a la vez.
  8. Una función se puede utilizar en las consultas SQL mientras que un procedimiento no se puede utilizar en consultas SQL .que causan una gran diferencia en función y procedimientos de b/w.
+0

Su 4to punto no es correcto, por favor corrija la ans –

0

La función debe devolver un valor, pero en el Procedimiento almacenado es opcional (El procedimiento puede devolver cero o n valores). Las funciones solo pueden tener parámetros de entrada, mientras que los Procedimientos pueden tener parámetros de entrada/salida. Las funciones se pueden llamar desde el Procedimiento, mientras que los Procedimientos no se pueden llamar desde la Función.