当前位置:网站首页>Mysql 存储过程详解(procedure)
Mysql 存储过程详解(procedure)
2022-08-03 05:22:00 【鱼丸丶粗面】
1 概述
2 语法
2.1 创建
create procedure 存储过程名(in|out|inout 参数名 参数类型)
begin
-- 变量定义
declare v_int int default 0;
-- 变量赋值
set v_var = 1;
-- 具体逻辑
...;
end;
实例:
use test; -- 指定执行用户
drop procedure if exists procedure_demo; -- 若存在,先删除
delimiter $$ -- 指定分隔符,避免与逻辑代码中的 ";" 产生冲突
-- 创建存储过程
create procedure procedure_demo(in i_int int,
out o_varchar varchar(255))
begin
-- 变量定义
declare v_int int default 0;
declare v_numeric numeric(10, 2) default 13.14;
declare v_date date default '2021-05-10';
declare v_datetime datetime default '2021-05-10 21:03:00';
declare v_varchar varchar(255) default '存储过程模板';
-- 变量赋值
set v_int = i_int;
-- 逻辑代码
select v_int,
v_numeric,
v_date,
v_datetime,
v_varchar
from dual;
-- 输出,y: 执行成功
set o_varchar = 'Y';
end $$
delimiter ; -- 还原默认分隔符 ";"
2.2 调用
-- 有参数: 入参, 出参
call procedure_demo(2, @v_out);
select @v_out;
-- 无参数
call procedure_name();
2.3 查询
-- 方式1:查询常规情况
show procedure status where db='数据库名';
-- 方式2:查询常规情况
select *
from information_schema.routines r
where r.routine_schema='数据库名'
and r.routine_type = 'PROCEDURE';
-- 方式3:查询定义的部分 create ...
show create procedure 数据库.存储过程名;
2.4 删除
drop procedure if exists procedure_demo; -- 若存在,先删除
边栏推荐
猜你喜欢
随机推荐
Qlik Sense 字符串截取和拼接详解(Left、Right、&)
jsp通过form表单提交数据到servlet报404
Haproxy服务监控
7.8(6)
跨域错误的原因及处理方法
【Arduino】关于“&”和“|” 运算-----多个参数运算结果异常的问题解决
MySQL 安装报错的解决方法
7.16(6)
UPC-Longest X
该描述怎么写成SQL语句
【圣诞节给爱的人打印一颗圣诞树吧】超详细代码实现——圣诞树打印
【DC-4靶场渗透】
用pulp库解决运输问题【详细】
下拉框数据字典应用案例
Makefile介绍
中国柔性制造系统(FMS)市场发展动态及未来趋势预测报告2022~2028年
ansible的安装和部署详细过程,配置清单基本操作
【数组排序】+日常
Try setting CHROME_EXECUTABLE to a Chrome executable
Oracle 注释详解(--、/**/、rem)