mysql存储过程

### 思想
数据库sql语言层面的代码封装与重用

### 优点
存储过程可以封装,并隐藏复杂的商业逻辑
存储过程可以回传值,并可以接收参数
存储过程无法使用select指令来运行,因为它是子程序,与查看表,数据表,或用户定义函数不同
存储过程可以用在数据检验,强制实行商业逻辑

### 使用

delimiter  &&    #以&&为结束符

mysql> delimiter &&
mysql> create procedure fun()
    -> begin
    -> show databases;
    -> use python;
    -> show tables;
    -> end&&
## 注意 ERROR 1314 (0A000): USE is not allowed in stored procedures
mysql> delimiter &&
mysql> create procedure fun()
    -> begin
    -> show databases;
    -> show tables;
    -> end&&
Query OK, 0 rows affected (0.00 sec)
mysql> call fun()&&    ## 调用

mysql> delimiter ;  不要忘记修改结束符
## 查询存储过程
mysql> mysql> show procedure status like "%fun%";

## 存储过程是持久化存储,无论关闭数据库是否,都会存在

## 删除数据库 drop procedure fun;

## 查看存储过程的创建语句
mysql> show create procedure fun;

## 传参的存储过程
create procedure foo(in uid int,in new_name varchar(32))
begin
...
end

call foo(1,"zs")
posted @ 2023-04-16 10:53  Bre-eZe  阅读(19)  评论(0)    收藏  举报