MySQL存储过程及游标
来源:互联网 发布:大数据系统硬件 编辑:程序博客网 时间:2024/06/10 11:38
上个星期风风火火地学了下存储过程及游标,发现有一些细节容易忽略,在此做出一些标注,也希望能够给学习的人一些指导。
我所要做的是将连续地址进行拆分,比如address“环庆中路321弄1-30号”,目标是将其拆成“环庆中路321弄1号”,“环庆中路321弄2号”,“环庆中路321弄3号”等等。首先我将地址拆分为road“环庆中路321弄”,front“1”,behind“30”几个片段。然后建立一张新表,进行循环插入,过程如下。
#原表如下#id road front behind isodd#1 爱特路185弄 1 30 NULL#2 长宁路 255 259 Y#创建循环插入的表drop table if exists test;CREATE table test(id int,address varchar(255));#创建存储过程DROP PROCEDURE IF EXISTS proc;DELIMITER //CREATE PROCEDURE proc()#declare必须放在begin和end之间BEGIN#内置循环标签DECLARE inid INT DEFAULT 1;#外部循环标签DECLARE iid INT DEFAULT 0;#isodd为是否单数,“是”为“Y”,"否"为“NULL”,定义变量DECLARE rid VARCHAR(255);DECLARE rroad VARCHAR(255);DECLARE rfront INT;DECLARE rbehind INT;DECLARE risodd varchar(255);#定义越界标签,默认为1DECLARE done INT DEFAULT 1;#定义游标DECLARE getinfo CURSOR FOR SELECT id,road,front,behind,isoddFROM test1;#定义越界,设置标签为0DECLARE exit HANDLER FOR NOT FOUND SET done = 0;#打开游标OPEN getinfo;#当越界标签为默认1时一直循环,或者可以利用repeat先循环再判断,两种循环没有多大差别WHILE done = 1 DO#将游标获取的值放进定义的变量当中FETCH getinfo INTO rid,rroad,rfront,rbehind,risodd;#外部循环每次增加,会把front赋值给iid,利用iid进行内部循环SET inid =inid +1;SELECT rfront INTO iid;#当iid<behind时开始内部循环,将id,拼接road和iid和“号”的地址传送给testWHILE iid<=rbehind DOINSERT INTO test SELECT rid,concat(rroad,iid,"号");#如果isodd为空,则内部循环每次加1,否则加2IF risodd IS NULL THENSET iid =iid +1;ELSESET iid =iid +2;#结束if判断END IF;#结束内部循环END WHILE;#结束外部循环END WHILE;#关闭游标CLOSE getinfo;#结束存储过程END//delimiter ;CALL proc();
0 0
- MySQL存储过程及游标
- mysql-游标及存储过程游标的使用--源自技术
- mysql存储过程+游标
- mysql 游标+存储过程
- mysql 存储过程 游标
- mysql 存储过程游标
- MySQL 存储过程 游标
- 存储过程及游标
- mysql 存储过程创建及游标的使用
- mysql 存储过程、游标及逐行处理的配合使用
- Mysql 存储过程+游标应用
- MySQL存储过程和游标
- MySQL存储过程_游标
- MySql存储过程 游标(Cursor)
- mysql 存储过程游标学习
- Mysql存储过程与游标
- Mysql -- 存储过程/触发器/游标
- MySQL 存储过程/游标/事务
- UE设置编码
- jpa查询语句学习
- SMBIOS介绍(2):结构表
- cvs update 的输出标志 和 update常用几个参数
- arm-none-linux-gnueabi-gcc: No such file or directory
- MySQL存储过程及游标
- iOS避免出现多控件同时点击的问题
- JavaWeb防止表单重复提交
- 类和对象知识总结
- iOS面试题汇总(一)<1 - 60>
- 设计模式解析
- SMBIOS介绍(3):实现
- 使用命令行启动VirtualBox虚拟机
- Oracle与Mysql的字符连接函数concat与||