MySQL 删除过程
时间:2019-11-20 08:52:19 来源:igfitidea点击:
简介:在本教程中,您将学习如何使用MySQL DROP PROCEDURE语句删除存储过程。
MySQL DROP PROCEDURE语句简介
DROP PROCEDURE从数据库中删除存储过程。
下面显示了DROP PROCEDURE语句的语法:
DROP PROCEDURE [IF EXISTS] stored_procedure_name;
使用以下语法:
首先,在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 ;
其次,使用DROP PROCEDURE删除GetEmployees()存储过程:
DROP PROCEDURE GetEmployees;
2)将MySQL DROP PROCEDURE与IF EXISTS示例一起使用
下面的示例删除一个不存在的存储过程:
DROP PROCEDURE abc;
MySQL发出以下错误:
Error Code: 1305. PROCEDURE classicmodels.abc does not exist
该语句删除相同的不存在的存储过程,但带有IF EXISTS选项:
DROP PROCEDURE IF EXISTS abc;
这次,MySQL发布了警告。
0 row(s) affected, 1 warning(s): 1305 PROCEDURE classicmodels.abc does not exist
语句SHOW WARNINGS显示警告:
SHOW WARNINGS;
这是输出:
使用MySQL Workbench删除存储过程
该语句创建一个名为GetPayments()的新存储过程:
DELIMITER $$ CREATE PROCEDURE GetPayments() BEGIN SELECT customerName, checkNumber, paymentDate, amount FROM payments INNER JOIN customers using (customerNumber); END$$ DELIMITER ;
要使用MySQL Workbench删除存储过程,请执行以下步骤:
首先,右键单击要删除的存储过程的名称,然后选择"删除存储过程…"选项。
MySQL Workbench将显示一个确认窗口。
其次,单击"查看SQL"以查看MySQL Workbench将应用于数据库的SQL语句;如果要立即删除存储过程,请单击"立即删除"。
第三,查看要执行的SQL代码,然后单击"执行"按钮以删除存储过程。
在本教程中,您学习了如何使用MySQL DROP PROCEDURE语句删除存储过程。