MySQL CREATE PROCEDURE语句

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

SELECT * FROM products;

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

DELIMITER //

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

DELIMITER ;

要执行这些语句:

首先,启动MySQL Workbench。

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

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

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

第五,通过打开"存储过程"节点来检查存储过程。
如果看不到存储过程,则可以单击SCHEMAS标题旁边的Refresh按钮:

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

让我们研究一下存储过程的语法。

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

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

这是CREATE PROCEDURE语句的基本语法:

CREATE PROCEDURE procedure_name(parameter_list)
BEGIN
   statements;
END //

用这种语法

  • 首先,在CREATE PROCEDURE关键字之后指定要创建的存储过程的名称。

  • 其次,在过程名称后的括号中为存储过程指定逗号分隔的参数列表。

  • 第三,在BEGIN END块之间编写代码。
    上面的示例只是一个简单的SELECT语句。
    在END关键字之后,放置定界符以结束过程语句。

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

使用MySQL Workbench向导,您不必做很多事情,例如定界符或执行命令来创建存储过程。

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

将打开以下标签:

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

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

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

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

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

最后,在"存储过程"列表中查看存储过程:

在本教程中,您学习了如何使用MySQL CREATE PROCEDURE语句在数据库中创建新的存储过程。

执行存储过程

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

CALL stored_procedure_name(argument_list);

使用这种语法,您可以在CALL关键字之后指定存储过程的名称。
如果存储过程具有参数,则需要在存储过程名称后的括号内传递参数。

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

CALL GetAllProducts();

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

这是部分输出:

MySQL创建过程

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

日期:2019-11-20 08:52:19 来源:oir作者:oir