Resumo : neste tutorial, você aprenderá como usar a DROP PROCEDURE
instrução MySQL para eliminar um procedimento armazenado.
Introdução à instrução MySQL DROP PROCEDURE
A DROP PROCEDURE
instrução exclui um procedimento armazenado criado pela CREATE PROCEDURE
instrução.
O seguinte mostra a sintaxe básica da DROP PROCEDURE
instrução:
DROP PROCEDURE [IF EXISTS] sp_name;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
- Primeiro, especifique o nome do procedimento armazenado (
sp_name
) que deseja excluir após asDROP PROCEDURE
palavras-chave. - Segundo, use
IF EXISTS
a opção para descartar condicionalmente o procedimento armazenado, se ele existir.
Ao descartar um procedimento que não existe sem usar a IF EXISTS
opção, o MySQL emitirá um erro. Neste caso, se você usar a IF EXISTS
opção, o MySQL emitirá um aviso.
Observe que você precisa ter o ALTER ROUTINE
privilégio do procedimento armazenado para removê-lo.
Exemplos de DROP PROCEDURE do MySQL
Vejamos alguns exemplos de uso da DROP PROCEDURE
declaração.
1) Exemplo básico de instrução DROP PROCEDURE do MySQL
Primeiro, crie um novo procedimento armazenado que retorne informações de funcionários e de escritório:
DELIMITER $$
CREATE PROCEDURE GetEmployees()
BEGIN
SELECT
firstName,
lastName,
city,
state,
country
FROM employees
INNER JOIN offices using (officeCode);
END$$
DELIMITER ;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, use DROP PROCEDURE
para excluir o GetEmployees()
procedimento armazenado:
DROP PROCEDURE GetEmployees;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
2) Usando o MySQL DROP PROCEDURE com o exemplo da opção IF EXISTS
O exemplo a seguir elimina um procedimento armazenado que não existe:
DROP PROCEDURE abc;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
MySQL emitiu o seguinte erro:
Error Code: 1305. PROCEDURE classicmodels.abc does not exist
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Esta instrução descarta o mesmo procedimento armazenado inexistente, mas com IF EXISTS
a opção:
DROP PROCEDURE IF EXISTS abc;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Desta vez o MySQL emitiu um aviso.
0 row(s) affected, 1 warning(s): 1305 PROCEDURE classicmodels.abc does not exist
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A declaração SHOW WARNINGS
mostra o aviso:
SHOW WARNINGS;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Aqui está a saída:
Descartando um procedimento armazenado usando MySQL Workbench
A instrução a seguir cria um novo procedimento armazenado chamado GetPayments()
que retorna as informações do cliente e do pagamento:
DELIMITER $$
CREATE PROCEDURE GetPayments()
BEGIN
SELECT
customerName,
checkNumber,
paymentDate,
amount
FROM payments
INNER JOIN customers
using (customerNumber);
END$$
DELIMITER ;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Para eliminar o procedimento armazenado usando MySQL Workbench, siga estas etapas:
Primeiro, clique com o botão direito no nome do procedimento armazenado que deseja remover e escolha a opção Eliminar procedimento armazenado… .
MySQL Workbench exibirá uma janela de confirmação.
Segundo, clique em Review SQL para revisar a instrução SQL que o MySQL Workbench aplicará ao banco de dados ou clique em Drop Now se desejar remover imediatamente o procedimento armazenado.
Terceiro, revise o código SQL e clique no botão Executar para eliminar o procedimento armazenado.
Resumo
- Use a
DROP PROCEDURE
instrução para remover um procedimento armazenado. - Use a
IF EXISTS
opção para descartar o procedimento armazenado, se ele existir.