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

Procedimentos Armazenados em MySQL (Stored Procedures)

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 (1209 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 Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

1 Comentário em MySQL – Procedimentos Armazenados (Stored Procedures) Básico – 34

  1. Rafael Cabral // 29/06/2018 em 21:43 // Responder

    Boa noite Fabio, gostei muito do seu post, ficou super bem explicado. Mas queria tirar uma dúvida se possível. Como faço para uma stored procedure poder rodar em determinado horario ou de tempo em tempo? Isso é possível?

Escreva um comentário

Seu e-mail não será divulgado


*