[+/-]
CREATE PROCEDURE y CREATE FUNCTIONALTER PROCEDURE y ALTER FUNCTIONDROP PROCEDURE y DROP FUNCTIONSHOW CREATE PROCEDURE y SHOW CREATE
        FUNCTIONSHOW PROCEDURE STATUS y SHOW FUNCTION
        STATUSCALLBEGIN ... ENDDECLARE
      Los procedimientos almacenados y rutinas se crean con comandos
      CREATE PROCEDURE y CREATE
      FUNCTION . Una rutina es un procedimiento o una
      función. Un procedimiento se invoca usando un comando
      CALL , y sólo puede pasar valores usando
      variables de salida. Una función puede llamarse desde dentro de
      un comando como cualquier otra función (esto es, invocando el
      nombre de la función), y puede retornar un valor escalar. Las
      rutinas almacenadas pueden llamar otras rutinas almacenadas.
    
Desde MySQL 5.0.1, los procedimientos almacenadoso funciones se asocian con una base de datos. Esto tiene varias implicaciones:
          Cunado se invoca la rutina, se realiza implícitamente
          USE  ( y
          se deshace cuando acaba la rutina). Los comandos
          db_nameUSE dentro de procedimientos almacenados no
          se permiten.
        
          Puede calificar los nombres de rutina con el nombre de la base
          de datos. Esto puede usarse para referirse a una rutina que no
          esté en la base de datos actual. Por ejemplo, para invocar
          procedimientos almacenados p o funciones
          f esto se asocia con la base de datos
          test , puede decir CALL
          test.p() o test.f().
        
Cuando se borra una base de datos, todos los procedimientos almacenados asociados con ella también se borran.
      (En MySQL 5.0.0, los procedimientos almacenados son globales y no
      asociados con una base de datos. Heredan la base de datos por
      defecto del llamador. Si se ejecuta USE
       desde la rutina, la
      base de datos por defecto original se restaura a la salida de la
      rutina.)
    db_name
      MySQL soporta la extensión muy útil que permite el uso de
      comandos regulares SELECT (esto es, sin usar
      cursores o variables locales) dentro de los procedimientos
      almacenados. El conjunto de resultados de estas consultas se
      envía diractamente al cliente. Comandos SELECT
      múltiples generan varios conjuntos de resultados, así que el
      cliente debe usar una biblioteca cliente de MySQL que soporte
      conjuntos de resultados múltiples. Esto significa que el cliente
      debe usar una biblioteca cliente de MySQL como mínimos desde 4.1.
    
La siguiente sección describe la sintaxis usada para crear, alterar, borrar, y consultar procedimientos almacenados y funciones.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

