MySQL8 存储过程

MySQL8 存储过程,MySQL8教程,介绍 MySQL8 存储过程和示例。

【全栈教程】:https://try8.cn/article
教程目录:
教程内容:
最近更新:2023-04-17

一、MySQL8 存储过程介绍

MySQL8 存储过程是一种存储对象类型,它是存储在数据库中的一组 SQL 语句,您可以通过指定关键字调用存储过程中的代码。MySQL8 存储过程简单易用,优点非常明显,在这里我们通过一些在线示例来快速掌握和运用。


1.1、存储过程特性

存储过程有输入和输出参数,可以声明变量、支持各种流程控制语句,通过编写存储过程可以实现复杂的逻辑功能。

  • 存储过程具有模块化、封装性优点,方便代码复用;
  • 速度快,只有第一次需要经过编译和优化,后面直接执行。


1.2、存储过程须知

不同的数据库,语法差别很大,这就造成移植困难的情况,如果需要移植,大多数都需要重写。如果把太多的逻辑写在存储过程中会非常混乱、不方便维护,存储过程的使用场景一般是对性能要求较高的单一业务。

  • 存储过程不允许使用锁定语句,如:lock tables 和 unlock tables 等;
  • 存储过程名称或代码不允许修改,只能重建;
  • 存储过程不允许使用 load data 或 load xml 等。


二、MySQL8 存储过程教程

2.1、创建存储过程

首先,我们通过编写一个简单的存储过程,来介绍存储过程的语法。

delimiter //
create procedure try8_proc()
begin
select * from try8_tb;
end //
delimiter ;


存储过程关键字说明:

  • delimiter:将默认分隔符分号 ; 更改为其它符号,本例修改为 //,更改原因是为了将存储过程作为一个整体传递给服务器,而不是根据分隔符一句一句的执行,需要在存储过程最后一行还原为默认分隔符;
  • create procedure:用于创建存储过程,该关键字后面指定存储过程的名称;
  • beginend:声明存储过程的主体,您可以将 SQL 放在正文中以处理业务逻辑。


2.2、查看存储过程

# 查询系统表定义
select * from information_schema.routines where routine_name='try8_proc';
# 查询运行的状态
show create procedure try8.try8_proc;


2.3、调用存储过程

 call try8.try8_proc(); 


2.4、删除存储过程

drop procedure if exists try8.try8_proc;


2.5、修改存储过程

MySQL8 存储过程不支持修改,官方推荐的实现方式为先删除后重建。


三、MySQL8 存储过程 总结

MySQL8教程 - MySQL8 存储过程,介绍 MySQL 和 MySQL8 数据库,从 MySQL8 存储过程概念介绍开始,逐步到 MySQL8 存储过程使用示例等,通篇实用易懂,让 MySQL8 入门更加快速和简单。


《MySQL8教程》主打原创、全部免费,欢迎学习和转载,如需交流请加微信号:try8_cn。