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语句删除存储过程。