[+/-]
CREATE PROCEDURE
y CREATE FUNCTION
ALTER PROCEDURE
y ALTER FUNCTION
DROP PROCEDURE
y DROP FUNCTION
SHOW CREATE PROCEDURE
y SHOW CREATE
FUNCTION
SHOW PROCEDURE STATUS
y SHOW FUNCTION
STATUS
CALL
BEGIN ... END
DECLARE
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_name
USE
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.