1. 全局变量
全局变量可以直接使用,不用声明。全局变量前必须加 @
1.1 赋值全局变量
复制 | |
| SET @var = XXX |
| |
| |
| SELECT a,b FROM tableName where id = 1 INTO @var1,@var2 |
1.2 使用全局变量
复制SELECT @变量名
2. 存储过程
0. 前奏
复制
0.0 结尾
复制
1. 创建存储过程
复制 | |
| create procedure 存储过程名字 (参数列表) |
| begin |
| 方法体; |
| end $$ |
| |
| |
| |
| |
| |
| |
| |
| (IN|OUT|INOUT) 参数名字 类型 |
2. 操作变量
使用变量,直接使用即可
复制select * from id = idx
赋值变量
复制 | |
| SET idx = XXX |
| |
| |
| SELECT a,b FROM tableName where id = 1 INTO idx,`name` |
3. 操作存储过程
复制 | |
| call 存储过程名(参数列表) |
| |
| |
| select procedure status; |
| |
| |
| show create procedure 存储过程名; |
| |
| |
| drop procedure 存储过程名 |
| drop procedure if exists 存储过程名 |
4. 方法体
方法体中可以写sql语句
4.1 声明局部变量,使用default来赋默认值
复制 | |
| declare c int; |
| declare address varchar(128) default 'Asia/Shanghai'; |
4.2 赋值局部变量
复制
4.3 if语句
复制 | if 判断条件 then |
| 方法体 |
| elseif 判断条件 then |
| 方法体 |
| else |
| 方法体 |
| end if |
4.4 循环
复制 | |
| while 循环条件 do |
| 方法体 |
| end while |
| |
| |
| repeat |
| 方法体 |
| until v_i >= 5 end repeat; |
| |
| |
| loop |
| 方法体 |
| end loop |
| |
| |
| |
| look:loop |
| if XXX then |
| leave look; |
| end if |
| end loop look; |
5. 技巧
5.1 设置语句错误自动回滚
复制 | DECLARE t_error INTEGER DEFAULT 0; |
| DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1; |
| |
| START TRANSACTION; |
| |
| # TODO... |
| |
| if t_error = 1 then |
| rollback; |
| else |
| commit; |
| end if; |
作者:c21cw 如果,您希望更容易地发现我的新文章,不妨点击一下绿色通道的【关注我】。
如果您觉得阅读本文对您有帮助,请点击一下右下方的推荐按钮,您的推荐将是我写作的最大动力!
版权声明:本文为博主原创或转载文章,欢迎转载,但转载文章之后必须在文章页面明显位置注明出处,否则保留追究法律责任的权利。如您有任何疑问或者授权方面的协商,请 .
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构