sql 存储过程——重复执行一条sql

        开发过程中经常会使用数据库查询数据,有些sql是需要经常使用的,每次重复写就很麻烦,可以使用存储过程将sql存储起来,这样就方便很多啦!

        对我来说,更常用的场景是造数据的时候,可能仅需要不同的id,却要造n多条数据,每次修改id就超级麻烦,使用存储过程简直不要太节省时间!

        以下为存储过程的使用方法(小白总结,如有错误,欢迎指正!):

  • 定义存储过程
delimiter //
-- 默认以;为分隔符,则在存储过程中的;会引起编译报错,故先使用delimiter将//设为分隔符以保证编译成功
CREATE PROCEDURE insert_app_list(INOUT id_inout VARCHAR(10))
-- 创建存储过程,名称自定义,参数可有可无
-- 参数声明有三种方式:
-- IN(只进不出,即存储过程中对参数的修改在存储过程结束后失效,默认值)
-- OUT(只出不进,即无法从外部传值,但存储过程中对参数进行的修改在存储过程结束后仍有效)
-- INOUT(可进可出,即对于参数,外界和存储过程内均可对其进行操作且有效)
BEGIN -- 过程体开始
	SET id_inout = id_inout + 1;
-- 将参数设为每次+1,配合参数INOUT可实现自增
 	INSERT INTO `app_list`(`id`, `app_name`) VALUES (id_inout, 'fer');
END -- 过程体结束
// -- 存储过程定义结束
delimiter ;
-- 将分割符改回;以保证后续sql及存储过程中的sql正常使用

        再举例说明下参数的三种声明方式:

设变量为i传入存储过程前i为存储过程中i+1后i为存储过程执行结束后i为
IN121
OUT11(即传入为0)1
INOUT122
  • 使用存储过程
set @id = '1';
-- 设置自定义变量初始值
CALL insert_app_list(@id);
-- 调用存储过程,参数必须使用自定义变量,否则会报错
-- 定义了变量后,每次只需重复执行call语句即可,否则就不是自增了
  • 删除存储过程
drop PROCEDURE insert_app_list;
-- 删除存储过程,只需要名称不需要参数(由此可见存储过程没有重载一说)
参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

许普诺斯!叮

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值