mysql:存储过程的创建与使用

news2025/1/18 21:18:31

一、创建存储过程

使用MySql Workbench创建存储过程,一定要记得使用delimiter指明结束符,否则会报错:Statement is incomplete, expecting: ';’

错误示例:

create procedure area_pro1(in mylevel tinyint)
begin
	select * from area_code_2022 where level= mylevel ;
end;

正确示例:

delimiter //
create procedure area_pro1(in mylevel tinyint)
begin
	select * from area_code_2022 where level= mylevel ;
end
//

其中,//就是结束符,可以自行指定,比如一般都用$$。

二、存储过程语法

这里就不照搬官方的语法了,按照我的理解来说一说:

create procedure 存储过程名(in/out/inout 参数名  参数类型)
begin
	存储过程体,也就是你想执行什么逻辑 ;
end

其中,in表示输入参数,out表示输出参数,inout既可以是输入,也可以是输出。

三、存储过程的使用

1、使用仅有输入参数的存储过程,使用:call 存储过程名(值)即可。

注意:如果存储过程不传参数或者传错参数类型的话,该存储过程会报错。该参数是否可以不必传,暂时还不能确定,如你确定的话,欢迎评论区留言。

2、使用输出参数的存储过程

delimiter //
create procedure area_pro2(out myResult varchar(20000))
begin
select name into myResult from area_code_2022 where level=1 ;
end 
//

使用into,将传出内容赋值给参数。

调用,注意带有@符号

 3、inout  就是既可以当入参用,也可以当出参用,这里就不过多说了,

四、一般不建议使用存储过程

1、优势

​    1.一次编译,多次运行,性能好,节省每次运行编译时间

​    2.防止sql注入式攻击

​    3.隐藏数据库的复杂性,将数组组装的过程封装

2、劣势

​    1.存储过程难以调试

​    2.可移植性差,当碰到切换数据种类的时候,存储过程基本就会歇菜

​    3.如果业务数据模型有变动,存储过程必须跟业务代码一起更改

注意:当然这种说法一般是网上的说辞,我自己也没有在实际项目中用过。不过据说mysql对存储过程调试的优化不好,sqlserver貌似还行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/161715.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

回看2022,展望2023

目录一、回看2022求职心路身份过度二、展望20232023年,祝大家天天开心,身体健康,万事如意,一起加油!一、回看2022 求职心路 2022年过去了,2023年到来了。在2022年我印象比较深刻的是8-11月份的日子&#…

【正点原子FPGA连载】第十六章Petalinux设计流程实战摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第十六章Petalin…

大数据必学Java基础(一百二十一):Maven项目结构介绍

文章目录 Maven项目结构介绍 一、标准目录结构 二、结构图 Maven项目结构介绍 一、标准目录结构

商场导视图用什么软件做,专业、便捷的室内电子地图绘制平台

在一些大型商场,顾客很多时候找不到店铺和需要的商品、不了解商家的优惠促销信息、大型活动日排队和消费等等。在这个全民习惯于手机导航的时代,假如商场的活动信息也能够全部显示在手机上,并且能实时的进行导航,那该有多方便&…

剑指offer----C语言版----第十八天----面试题24:反转链表

目录 1. 反转链表 1.1 题目描述 1.2 思路一:反转指针 1.3 思路二:头插到新链表 1.4 往期回顾 1. 反转链表 原题链接: 剑指 Offer 24. 反转链表 - 力扣(LeetCode)https://leetcode.cn/problems/fan-zhuan-lian-biao-…

4700. 何以包邮?(简单的dp 01背包思想)

题目如下: 输入样例1: 4 100 20 90 60 60输出样例1: 110样例1解释 购买前两本书 (2090) 即可包邮且花费最小。 输入样例2: 3 30 15 40 30输出样例2: 30样例2解释 仅购买第三本书恰好可以满足包邮条件。 输入样例…

分享128个ASP源码,总有一款适合您

分享128个ASP源码,总有一款适合您 ASP源码 分享128个ASP源码,总有一款适合您 链接:https://pan.baidu.com/s/1FXTm501s200ASY8XYTIk7w?pwd474b 提取码:474b 下面是文件的名字,我放了一些图片,文章里不…

安凯微在科创板IPO过会:计划募资10亿元,小米等为其股东

1月13日,上海证券交易所披露的信息显示,广州安凯微电子股份有限公司(下称“安凯微”)首发符合发行条件、上市条件和信息披露要求,即IPO过会。目前,安凯微的上市申请状态已经变更为“上市委会议通过”。 本次…

线程学习基础(1):单线程爬虫和多线程爬虫的效率比照

线程学习基础:单线程爬虫和多线程爬虫的效率比照1. 并发线程的需求2. 线程提速方法3. 如何选择并发编程的三种方式3.1 什么是CPU密集型计算、IO密集型计算?3.1.1 CPU密集型(CPU-bound)3.1.2 IO密集型(IO-bound)3.2 多线程Thread、…

三维空间中散点平面拟合方法

1、三点求平面方程、平面法向量和点到平面的距离 已知三点p1(x1,y1,z1),p2(x2,y2,z2),p3(x3,y3,z3), 要求确定的平面方程,关键在于求出平面的一个法向量 为此做向量p1p2(x2-x1,y2-y1,z2-z1), p1p3(x3-x1,…

Linux-8 用户管理

Linux-8 用户管理 什么是用户? Linux/Windows通过用户来管理和维护系统; Windows下的管理员用户:AdministratorLinux下的管理员用户:root Windows/Linux都是多用户系统 Windows同一时间只能使用1个用户Linux可以多用户同时登陆&…

STL - Vector容器

基本概念 功能: vector数据结构和数组十分类似,也成为单端数组 vector和普通数组的区别: 不同之处在于数组是静态空间,而vector可以动态扩展 动态扩展: 并不是在原空间后续再接空间&#x…

【pandas】用户手册:10分钟熟悉pandas(下)

数据分组 Splitting : 利用某些条件将数据进行分组Applying : 函数应用于每个单独的分组Combining : 合并最终的结果 df pd.DataFrame({"A": ["foo", "bar", "foo", "bar", "foo", "bar", "foo&q…

【正点原子FPGA连载】第十四章Linux基础外设的使用 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第十四章Linux基…

百趣代谢组学文献分享:间歇性禁食调节糖尿病脑损伤多组学研究

百趣代谢组学文献分享,糖尿病已经成为一个全球问题,国际糖尿病联盟(IDF)发布的全球糖尿病地图(第9版)[1]显示,全球糖尿病患者人数不断上升,全球平均增长率为51%,目前有4.…

C#,图像二值化(23)——局部阈值的绍沃拉算法(Sauvola Thresholding)及源程序

1、局部阈值的绍沃拉算法(Sauvola Thresholding)Niblack和Sauvola阈值算法Niblack和Sauvola阈值是局部阈值技术,对于背景不均匀的图像非常有用,尤其是对于文本识别1、2。代替为整个图像计算单个全局阈值,通过使用考虑到…

【5】K8S_Deployment

目录 1、Deployment作用 2、deployment的冗余能力 3、deployment的多副本部署 4、deployment的扩缩容 5、deployment的自愈能力 6、滚动更新 7、版本回退 1、Deployment作用 控制Pod,使Pod拥有多副本,自愈,扩缩容等能力 2、deployme…

【正点原子FPGA连载】第十五章开发环境搭建 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第十五章开发环境…

uniapp 窗口小工具、桌面小部件、微件(日历、时间) Ba-AwCalendarS

简介(下载地址) Ba-AwCalendarS 是一款窗口小工具(桌面小部件、微件)插件,默认为简单的时间样式,有其他界面需要,可联系作者定制。 支持定时更新(本插件为每分钟)支持点…

基于springboot,vue二手交易平台

开发工具:IDEA服务器:Tomcat9.0, jdk1.8项目构建:maven数据库:mysql5.7系统用户前台和管理后台两部分,项目采用前后端分离前端技术:vue elementUI服务端技术:springbootmybatis项目功…