MySQL – Procedimentos Armazenados (Stored Procedures) Básico – 34

Procedimentos Armazenados (Stored Procedures) em MySQL

Um procedimento armazenado (Stored Procedure, em inglês) é uma sub-rotina disponível para aplicações que acessam sistemas de bancos de dados relacionais.

Podem ser usados para validação de dados, controle de acesso, execução de declarações SQL complexas e muitas outras situações.

Desde a versão 5.0 o MySQL suporta a criação e execução de Stored Procedures.

Criar Procedimentos Armazenados

A seguir temos a sintaxe para criação de um Procedimento Armazenado em MySQL:

CREATE PROCEDURE nome_procedimento (parâmetros)
declarações;

Executando um Procedimento:

Para invocar uma stored procedure usamos a instrução CALL:

CALL nome_procedimento (parâmetros);

Exemplo:

Vamos a um exemplo. Iremos criar um procedimento para consulta de preço de livros, passando como parâmetro o ID do livro:

CREATE PROCEDURE verPreço (varLivro smallint)
SELECT CONCAT('O preço do livro ', Nome_Livro, ' é ', Preco_Livro) AS Preço
FROM tbl_Livro
WHERE ID_Livro = varLivro;

Invocando o procedimento:

CALL verPreço(3);

Exemplo 02: Procedimento para trazer os preços dos livros de uma determinada editora, por nome da editora

CREATE PROCEDURE consultaLivros (varEditora VARCHAR(50))
SELECT CONCAT('O livro ', Nome_Livro, ' custa ', Preco_Livro) AS Preço
FROM tbl_Livro
INNER JOIN tbl_editoras
ON tbl_livro.ID_editora = tbl_editoras.ID_Editora
WHERE tbl_editoras.Nome_Editora = varEditora;

Invocando o procedimento:

CALL consultaLivros('O´Reilly');

Excluir stored procedure

Para excluir uma stored procedure do sistema, usamos a declaração DROP PROCEDURE, seguida do nome do procedimento a ser excluído:

DROP PROCEDURE nome_procedimento;

Por exemplo, para excluir a procedure verPreço criada no exemplo anterior:

DROP PROCEDURE verPreço;

O vídeo a seguir mostra como criar executar procedimentos armazenados simples em MySQL:

Sobre Fábio dos Reis (1198 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Astronomia, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*