[+/-]
Stored procedures e funções são rotinas criadas com as
instruções CREATE PROCEDURE
e CREATE
FUNCTION
. Um procedimento é chamado usando uma
instrução CALL
e só pode passar valores de
retorno usadno variáveis de saída. Funções podem retornar um
valor escalar e pode ser chamadas de dentro de uma instrução
como quqlquer outra função (isto é, chamando o nome da funcao).
Rotinas armazenadas podem chamar outras rotinas armazenadas. Uma
rotina pode ser tanto um procedimento como uma função.
Atualmentem o MySQL só preserva o contexto para o banco de dados
padrão. Isto é, se você usar USE dbname
dentro de um procedimento, o banco de dados original é restaurado
depois da saída da rotina. Uma rotina herda o banco de dados
padrão de quem a chama, assim geralmente as rotinas devem
utilizar uma instrução USE dbname
, ou
especifique todas as tabelas com uma referência de banco de dados
explicita, ex. dbname.tablename
.
O MySQL suporta uma extensão muito útil que permite o uso da
instrução regular SELECT
(isto é, sem usar
cursores ou variáveis locais) dentro de uma stored procedure. O
resultado de tal consulta é simplesmente enviado diretamente para
o cliente. Várias instruções SELECT
geram
vária resultados, assim o cliente deve usar um biblioteca cliente
do MySQL que suporta vários resultados. Isto significa que o
cliente deve usar uma biblioteca cliente a partir de uma versão
do MySQL mais recente que 4.1, pelo menos.
A seção seguinte descreve a sintaxe usada para criar, alterar, remover e condultar stored procedures e funções.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.