MySQL CREATE PROCEDURE

摘要在本教程中,您将逐步学习如何通过 MySQL CREATE PROCEDURE语句创建新的存储过程。

MySQL CREATE PROCEDURE语句

此查询返回示例数据库products表中的所有产品。

SELECT * FROM products;Code language: SQL (Structured Query Language) (sql)

以下语句创建一个包装查询的新存储过程:

DELIMITER //

CREATE PROCEDURE GetAllProducts()
BEGIN
	SELECT *  FROM products;
END //

DELIMITER ;Code language: SQL (Structured Query Language) (sql)

要执行这些语句:

首先,启动 MySQL Workbench。

其次,创建一个新的 SQL 选项卡来执行查询:

第三步,在SQL选项卡中输入语句:

MySQL CREATE PROCEDURE 示例步骤 2

第四,执行语句。请注意,您可以选择 SQL 选项卡中的所有语句(或不选择任何语句),然后单击“执行”按钮。如果一切正常,MySQL 将创建存储过程并将其保存在服务器中。

第五,通过打开“存储过程”节点检查存储过程。如果您没有看到存储过程,可以单击SCHEMAS标题旁边的“刷新”按钮:

MySQL CREATE PROCEDURE 示例步骤 4

恭喜!您已经成功创建了 MySQL 中的第一个存储过程。

让我们检查一下存储过程的语法。

第一个和最后一个DELIMITER命令不是存储过程的一部分。第一个DELIMITER命令将默认分隔符更改为// ,最后一个DELIMITER命令将分隔符更改回默认分隔符分号 (;)。

要创建新的存储过程,请使用CREATE PROCEDURE语句。

以下是CREATE PROCEDURE语句的基本语法:

CREATE PROCEDURE procedure_name(parameter_list)
BEGIN
   statements;
END //Code language: SQL (Structured Query Language) (sql)

在这个语法中

  • 首先,在CREATE PROCEDURE关键字后指定要创建的存储过程的名称。
  • 其次,在过程名称后面的括号中指定存储过程的逗号分隔参数列表。请注意,您将在后续教程中学习如何创建带参数的存储过程
  • 第三,在BEGIN END块之间编写代码。上面的例子只有一个简单的SELECT语句。在END关键字之后,放置分隔符来结束过程语句。

执行存储过程

要执行存储过程,可以使用CALL语句:

CALL stored_procedure_name(argument_list);Code language: SQL (Structured Query Language) (sql)

在此语法中,您可以在CALL关键字后指定存储过程的名称。如果存储过程有参数,则需要在存储过程名称后面的括号内传递参数。

此示例说明如何调用GetAllProducts()存储过程:

CALL GetAllProducts();Code language: SQL (Structured Query Language) (sql)

执行该语句与执行 SQL 语句相同:

这是部分输出:

使用 MySQL Workbench 向导创建存储过程

通过使用 MySQL Workbench 向导,您不必处理许多事情,例如分隔符或执行命令来创建存储过程。

首先,在导航器中右键单击“存储过程” ,然后选择“创建存储过程...”菜单项。

将打开以下选项卡:

其次,更改存储过程的名称并在BEGIN END块之间添加代码:

存储过程名称为GetAllCustomers() ,它返回示例数据库customers表中的所有行。

第三,单击“应用”按钮,MySQL Workbench 将打开一个新窗口,用于在将 SQL 脚本应用到数据库之前查看它:

第四,单击“应用”按钮进行确认。 MySQL Workbench 将创建存储过程:

第五,单击完成按钮关闭窗口。

最后在Stored procedures列表中查看存储过程:

概括

  • 使用CREATE PROCEDURE语句创建新的存储过程。
  • 使用CALL语句执行存储过程。
  • MySQL将存储过程存储在服务器中。
本教程有帮助吗?