mysql存储过程注释方法_mysql存储过程 详细注释
原文:https://my.oschina.net/u/3582142/blog/1581929
delimiter $$ /* 重新定义mysql结束符,而不再是分号是结束符 */
create procedure mergeDeclare() /* 创建存储过程 */
BEGIN
/*定义局部变量*/
DECLARE id INT DEFAULT 0;
DECLARE Done INT DEFAULT 0;
DECLARE mobile VARCHAR(20);
DECLARE mobileTemp VARCHAR(20) DEFAULT '';
DECLARE maxId INT DEFAULT 0;
DECLARE t_error INTEGER DEFAULT 0;
DECLARE rs CURSOR FOR /* 定义从mysql取数据的游标 */
/* 查出需要的数据 */
select
a.declare_id,a.user_mobile
from
declare_info a,
(select user_mobile from declare_info b where b.status=1 group by user_mobile having count(1)>1) b
where
a.user_mobile=b.user_mobile and a.status =1 and CHARACTER_LENGTH(a.user_mobile) = 11 ORDER BY a.user_mobile , a.declare_id DESC;
/* 当游标遍历完所有数据的时候,set Done的值为1 */
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET Done = 1;
/* 当发生sql异常的时候set t_error的值为1 */
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1;
/* 开启事务 */
START TRANSACTION;
/* 打开游标 */
OPEN rs;
/* 取游标当前的值,into后面是赋值的意思,被赋值变量的数目与sql查出来的字段数相等 */
FETCH NEXT FROM rs INTO id,mobile;
/* 在此处进行循环 */
REPEAT
IF NOT Done THEN
IF mobileTemp = mobile THEN
UPDATE farmer_certification_info set declare_id = maxId where declare_id = id;
UPDATE farmer_contact_info set declare_id = maxId where declare_id = id;
UPDATE farmer_industry_info set declare_id = maxId where declare_id = id;
UPDATE farmer_info set declare_id = maxId where declare_id = id;
UPDATE farmer_job_info set declare_id = maxId where declare_id = id;
UPDATE farmer_skill_info set declare_id = maxId where declare_id = id;
UPDATE training_class_user set declare_id = maxId where declare_id = id;
UPDATE training_class_evaluate set declare_id = maxId where declare_id = id;
UPDATE declare_info set `status`= 0 where declare_id = id;
ELSE
set mobileTemp = mobile;
set maxId = id;
END IF;
END IF;
IF t_error = 1 THEN
/* sql异常回滚 */
ROLLBACK;
ELSE
/* 提交事务 */
COMMIT;
END IF;
/* 向游标取出下一个值进行赋值 */
FETCH NEXT FROM rs INTO id,mobile;
/* 遍历完Done=1,结束遍历 */
UNTIL Done END REPEAT;
/*关闭游标*/
CLOSE rs;
END $$ /* 结束符,和开始定义的一致 */
/*
drop procedure mergeDeclare /* 删除存储过程 */
*/
/*
call mergeDeclare() /* 调用存储过程 */
*/
标注:存储过程没有容器和数据概念,但可新建表借助表当作一个容器使用。
mysql存储过程注释方法_mysql存储过程 详细注释相关推荐
- mysql 存储过程 定义数组_MySql存储过程
Mysql进阶 存储过程 1 什么是存储过程 1.存储过程,带有逻辑的sql语句 2.之前的sql没有条件判断,没有循环 3.存储过程带上流程控制语句(if while) 2 存储过程特点 1)执行效 ...
- mysql 存储过程插入慢_mysql存储过程太慢怎么办
mysql存储过程太慢的解决方法:首先打开my.cnf配置文件:然后添加配置[long_query_time=1]:接着通过[tail -f /tmp/logs/mysqld.log]命令监控sql: ...
- mysql存储过程 简书_MySQL存储过程
在本节中,您将逐步学习如何在MySQL中编写和开发存储过程. 首先,我们向您介绍存储过程的概念,并讨论何时使用它. 然后,展示如何使用过程代码的基本元素,如创建存储过程的语句,if-else,case ...
- mysql 存储过程建表_MySQL 存储过程创建表
创建 CREATE PROCEDURE Pro_IsExistTable(ableName varchar(100),out outputParam int) BEGIN set @csql=con ...
- mysql 存储过程 out 用处_mysql存储过程 OUT or INOUT argument 3 for routine
mysql存储过程出现: OUT or INOUT argument 3 for routine gotask.UserLogin is not a variable or NEW pseudo-va ...
- mysql存储过程list参数_mysql存储过程教程(1)
MySQL存储过程 1.1 CREATE PROCEDURE (创建) CREATE PROCEDURE存储过程名(参数列表) BEGIN SQL语句代码块 END 注意: 由括号 ...
- c# mysql存储过程 输出参数值_MySQL 存储过程参数用法 in, out, inout
MySQL 存储过程参数有三种类型:in.out.inout.它们各有什么作用和特点呢? 一.MySQL 存储过程参数(in) MySQL 存储过程 "in" 参数:跟 C 语言的 ...
- mysql的游标处理_mysql 存储过程、游标及逐行处理的配合使用
1. 数据准备 +----+------+--------+ | id | name | price1 | +----+------+--------+ | 1 | 大米 | 5 | | 2 | 鸡蛋 ...
- mysql生活使用方法_MySQL Workbench使用教程
MySQL Workbench 是一款专为 MySQL 设计的集成化桌面软件,也是下一代的可视化数据库设计.管理的工具,它同时有开源和商业化两个版本.该软件支持 Windows 和 Linux 系统, ...
最新文章
- 3.Excel数据透视表
- 电脑屏保海底世界_世界上最后一个深海实验室,隐藏了人类未来的秘密
- 修改这个新的伪原创工具列表
- 刷新认知!基因表达,男女有别|Science、Cell等发布15篇人类遗传调控新成果
- matlab编写全置信度函数,Matlab_curve_fitting_tool的用法图文结合
- java插件安装步骤_eclipse插件安装的四种方法
- 游戏王怪兽胶囊Android,游戏王怪兽胶囊GB是什么?
- CentOS安装完没有ip地址的解决方法
- 英文c语言笔试题,2010年3月计算机等考二级C语言笔试试题 附答案(国外英文资料).doc...
- Python爆破RAR密码
- 面试题:你印象最深刻的两个bug是什么,你是怎么解决的?
- 《星际迷航*:舰桥船员》与虚拟现实新趋势
- webview造成窗体泄漏
- 物理机安装linux系统
- 将一个32bit的数据,颠倒过来,bit0与bit31交换,bit1与bit30交换,C语言实现与verilog实现。
- 微信公众号自定义分享实现(开发者)
- [数模论文写作]模型的建立与求解
- Altium Designer之PCB库部分名称区分
- 计算机国培培训总结,国培培训总结范文(精选5篇)
- 汕尾市海陆丰民间开胃小食摘录
热门文章
- Linux下细碎温度等的监控与调整
- 日常小问题汇总(1)
- MFC随机博弈黑白棋
- 7-4 银行排队问题之单队列多窗口加VIP服务 (30 分)
- c语言银行卡管理系统程序设计报告,《c语言程序设计》课程设计报告-职工信息管理系统.doc...
- php获取外部URL,使用PHP从外部API / URL获取信息
- qt mysql 系统时间_使用QT和参数在SQLite数据库中插入日期时间
- matlab的三维伪彩图,matlab画等高线伪彩图
- hbase集群 数据写入_Hbase实用技巧:全量+增量数据的迁移方法
- win7 怎么干净删除php,window_win7系统如何删除注册表里面的垃圾文件?,win7系统如何删除注册表里面的 - phpStudy...