MySQL DROP PROCEDURE

摘要:在本教程中,您将学习如何使用 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 existCode 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 existCode 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选项删除存储过程(如果存在)。
本教程有帮助吗?