摘要:在本教程中,您将学习如何使用 MySQL DROP PROCEDURE
语句删除存储过程。
MySQL DROP PROCEDURE
语句简介
DROP PROCEDURE
语句删除由CREATE PROCEDURE
语句创建的存储过程。
下面显示了DROP PROCEDURE
语句的语法:
DROP PROCEDURE [IF EXISTS] stored_procedure_name;
Code language: SQL (Structured Query Language) (sql)
在这个语法中:
- 首先,在
DROP PROCEDURE
关键字后指定要删除的存储过程的名称。 - 其次,使用
IF EXISTS
选项有条件地删除存储过程(如果存在)。
当您删除不存在的过程而不使用IF EXISTS
选项时,MySQL 会发出错误。在这种情况下,如果您使用IF EXISTS
选项,MySQL 会发出警告。
请注意,您需要具有存储过程的ALTER ROUTINE
权限才能删除它。
MySQL DROP PROCEDURE 示例
让我们举一些使用DROP PROCEDURE
语句的示例。
1)使用MySQL DROP PROCEDURE
示例
DELIMITER $$
CREATE PROCEDURE GetEmployees()
BEGIN
SELECT
firstName,
lastName,
city,
state,
country
FROM employees
INNER JOIN offices using (officeCode);
END$$
DELIMITER ;
Code language: SQL (Structured Query Language) (sql)
其次,使用DROP PROCEDURE
删除GetEmployees()
存储过程:
DROP PROCEDURE GetEmployees;
Code language: SQL (Structured Query Language) (sql)
2) 使用带有 IF EXISTS 选项的 MySQL DROP PROCEDURE 示例
以下示例删除不存在的存储过程:
DROP PROCEDURE abc;
Code language: SQL (Structured Query Language) (sql)
MySQL 发出以下错误:
Error Code: 1305. PROCEDURE classicmodels.abc does not exist
Code language: SQL (Structured Query Language) (sql)
此语句删除相同的不存在的存储过程,但带有IF EXISTS
选项:
DROP PROCEDURE IF EXISTS abc;
Code language: SQL (Structured Query Language) (sql)
这次MySQL发出了警告。
0 row(s) affected, 1 warning(s): 1305 PROCEDURE classicmodels.abc does not exist
Code language: SQL (Structured Query Language) (sql)
语句SHOW WARNINGS
显示警告:
SHOW WARNINGS;
Code language: SQL (Structured Query Language) (sql)
这是输出:
使用 MySQL Workbench 删除存储过程
此语句创建一个名为GetPayments()
的新存储过程,用于返回客户和付款信息:
DELIMITER $$
CREATE PROCEDURE GetPayments()
BEGIN
SELECT
customerName,
checkNumber,
paymentDate,
amount
FROM payments
INNER JOIN customers
using (customerNumber);
END$$
DELIMITER ;
Code language: SQL (Structured Query Language) (sql)
要使用 MySQL Workbench 删除存储过程,请执行以下步骤:
首先,右键单击要删除的存储过程的名称,然后选择“删除存储过程...”选项。
MySQL Workbench 将显示一个确认窗口。
其次,单击“检查 SQL”以检查 MySQL Workbench 将应用于数据库的 SQL 语句,或者如果您想立即删除存储过程,请单击“立即删除” 。
第三,检查 SQL 代码并单击“执行”按钮删除存储过程。
概括
- 使用
DROP PROCEDURE
语句删除存储过程。 - 使用
IF EXISTS
选项删除存储过程(如果存在)。
本教程有帮助吗?