MySQL8 存储过程

一、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 存储过程

你可能感兴趣的:(数据库,sql,mysql)