Criar Procedures e Funções No MySQL
Criar Procedures e Funções No MySQL
[RETURNS type]
parameter:
type:
characteristic:
| [NOT] DETERMINISTIC
| COMMENT string
routine_body:
A cláusula RETURNS pode ser especificada apenas por uma FUNCTION. É usada
para indicar o tipo de retorno da função, e o corpo da função deve conter uma
parâmetros, uma lista de parâmetros vazia de () deve ser usada. Cada parâmetro é
palavra chave OUT ou INOUT antes do nome do parâmetro. Especificar IN, OUT ou
mesmo com a existencia de stored functions. Uma UDF pode ser considerada como
uma stored function externa. No entanto, note que stored functions compartilham
próxima. Isto permitirá que você escreva stored procedures em outras linguagens
além de SQL. Provavelmente, uma das primeiras linguagens a ser suportada sea
PHP, já que o mecanismo do PHP é pequeno, seguro com threads e pode facilmente
ser embutido. Como o framework será publico, é esperado que muitas outras
A característica SQL SECURITY pode ser usada para especificar se a rotina deve ser
procedimento p1() chama a tabela t1,o usuário deve ter privilégios na tabela t1
MySQL stores the SQL_MODE settings in effect at the time a routine is created, and
A cláusula COMMENT é uma extensão do MySQL, e pode ser usada para descrever
instruções de transação SQL (como COMMIT). Isto não é exigido por padrão e
Note que isto inclui algumas instruções SET, mas exclui algumas instruções
parâmetro OUT. O exemplo usa o comando delimiter do cliente mysql para alterar o
delimitador ‘;’ usado no corpo de procedure seja passado para o servidor em vez de
mysql> delimiter |
-> BEGIN
-> SELECT COUNT(*) INTO param1 FROM t;
-> END
-> |
+------+
| @a |
+------+
|3 |
+------+
A seguir esta um exemplo de uma função que utiliza um parametro, realiza uma
mysql> delimiter |
-> |
+----------------+
| hello('world') |
+----------------+
| Hello, world! |
+----------------+
characteristic:
| COMMENT string
Este comando pode ser usado para renomear uma stored procedure ou function, e
para alterar
suas características. Mais de uma mudança pode ser especificada em uma instrução
ALTER
Isto é, a
rotina especificada é removida do servidor.
ocorra se
vizualizado
Primeiro exemplo
Criando a função
mysql> DELIMITER // mysql> CREATE FUNCTION palavra (texto CHAR(20)) RETURNS
CHAR(50) -> RETURN CONCAT('Voce digitou: ',texto,' !!!'); -> //
mysql> DELIMITER ;
Para testar
mysql> SELECT palavra('oi'); +----------------------+ | palavra('oi')
| +----------------------+ | Voce digitou: oi !!! | +----------------------+
Segundo exemplo
Vamos criar uma tabela que contenha os nomes dos alunos de certa disciplina com as
notas de quatro bimestres, mostrando a média final.
Criando a tabela
mysql> CREATE TABLE notas(aluno VARCHAR(10), nota1 INT, nota2 INT, nota3
INT, nota4 INT);
Testar a função
mysql> SELECT media('Maria'); +----------------+ | media('Maria') |
+----------------+ | 9.75 | +----------------+ mysql> SELECT
media('Pedro'); +----------------+ | media('Pedro') | +----------------+ |
3.5 | +----------------+
Apagar a função
Se desejar apagar a função:
Veja também
Como efetuar um Backup do banco MySQL via SSH