BEGIN
declare p_id INT;
declare p_Code INT default 0;
declare p_Logo
INT default 0;
declare p_Name varchar(255) default '';
declare p_Address
varchar(755) default '';
declare p_Phone varchar(755) default '';
declare
p_Logo2 varchar(755) default '';
declare p_Logo3 varchar(755) default
'';
declare p_Paid varchar(755) default '';
declare p_IsDelete
varchar(755) default '';
declare done INT DEFAULT 0;
declare cur CURSOR
FOR SELECT ID, Code,Logo,Name,Address,Phone,Logo2,Logo3,Paid,IsDelete  FROM
hospital_copy;
declare CONTINUE HANDLER FOR NOT FOUND SET done=1;
OPEN
cur;
REPEAT
FETCH cur INTO p_id,
p_Code,p_Logo,p_Name,p_Address,p_Phone,p_Logo2,p_Logo3,p_Paid,p_IsDelete;
IF done=0 THEN
INSERT INTO
`hospital` (
`ID` ,
`Code` ,
`Name` ,
`Country_Code` ,
`Phone`
,
`Address1` ,
`Address2`
,
`Address3` ,
`County`
,
`Country` ,
`Postcode`
,
`Logo`
,
`Logo2` ,
`Logo3`
,
`Paid`
,
`IsDeleted`,
`Add_time`,
`Delete_time`,
`timeInterval`
)
VALUES (
p_id,
p_Code,p_Name,'0001','13971056776',p_Address,p_Address, p_Address, p_Address,
p_Address, '442200',
p_Logo,p_Logo2,p_Logo3,p_Paid,p_IsDelete,'2011-1-1','','30');
END IF;
UNTIL
done=1
END REPEAT;
CLOSE
cur;
END

加深红色部分解决方法,最后的重复的原因是FETCH cur INTO
……;的时候,当第一次到达最后一条记录时,取出记录,把值给变量,这时一切正常,没有错误。然后UNTIL UNTIL done=1
循环到REPEAT重新开始,再FETCH一条时,已经没有记录,done会被 SET
done=1;,但此刻没有进行任何判断,程序会继续执行INSERT INTO
……语句,而由于FETCH没有取到记录,则没有对变量进行赋值,所以变量仍是原值。当到UNTIL done 时程序退出REPEAT,从而最后的记录会被重复。

mysql 游标最后一行 重复问题的更多相关文章

  1. mysql去重, 把url重复且区为空的中去掉、统计重复数据、、结果集去重合并成一行

    delete from 表名 where id not in (select d.id from (SELECT id FROM 表名 GROUP BY c1,c2,c3,c4)as d) #去重复, ...

  2. SqlServer和MySQL游标学习

    一 sqlserver游标使用 /*** 游标的使用  讲了这个多游标的优点,现在我们就亲自来揭开游标的神秘的面纱.  使用游标的顺序: 声名游标.打开游标.读取数据.关闭游标.删除游标. 1.3.1 ...

  3. MySQL游标的简单实践

    Q:为什么要使用游标? A: 在存储过程(或函数)中,如果某条select语句返回的结果集中只有1行,可以使用select into语句(上几篇博客有介绍到用法)来得到该行进行处理:如果结果集中有多行 ...

  4. mysql 游标 demo

    一.MySQL游标的概念 1.游标介绍 MySQL的游标(cursor)是一个重要的概念,通过查找资料与自己的理解,主要得出以下几点关于自己的理解. 有数据缓冲的思想:游标的设计是一种数据缓冲区的思想 ...

  5. Mysql 游标初识

    MySql 游标初识 认识 游标(cursor), 按字面意思可理解为, 游动的标识, 或者叫做"光标", 这样更容易理解. 就好比现有一张表存储了n行记录, 然后我想每次取出一行 ...

  6. mysql查询表里的重复数据方法:

    INSERT INTO hk_test(username, passwd) VALUES ('qmf1', 'qmf1'),('qmf2', 'qmf11') delete from hk_test  ...

  7. MySQL游标操作指南

    本篇文章是对MySQL游标的具体使用进行了详细的分析介绍,需要的朋友参考下   测试表 level  代码如下: create table test.level (name varchar(20)); ...

  8. 个人笔记mysql游标

    经过测试,mysql游标是无法读取自定义函数计算的结构,mysql自带的函数计算值是可以读取的.

  9. [转]MySQL游标的使用

    转自:http://www.cnblogs.com/sk-net/archive/2011/09/07/2170224.html 以下的文章主要介绍的是MySQL游标的使用笔记,其可以用在存储过程的S ...

随机推荐

  1. Java Project和Web Project 区别

    java project是java工程,不包括JSP等前台页面的代码 大部分是CS结构的工程和一些jar包 web project是web工程,是BS结构的系统 web project部署到服务器上 ...

  2. asp.net(C#)读取word 文档的方法

    第一种方法 Response.ClearContent(); Response.ClearHeaders(); Response.ContentType = "Application/msw ...

  3. IE6-IE11兼容性问题列表及解决办法

    IE6-IE11兼容性问题列表及解决办法总结 相比IE6-IE9那版,主要添加IE10和IE11的新变化. 以下是目录及下载链接: 目录概述 2第一章:HTML 3第一节:IE7-IE8更新 3 1. ...

  4. apache&nginx资料汇总

    http://liudaoru.iteye.com/blog/336338 aquid:http://os.51cto.com/art/201009/225813.htm 数据库各种讲座:http:/ ...

  5. 自定义View(1)简单流程及示例模板

    1,继承View , ViewGroup,或TextView等等 2,绘制相关的api, canvas 画布, paint 画笔 2,重写重要的函数(注意这个顺序) onMeasure 属于View的 ...

  6. Android开发性能优化大总结

    1.  采用硬件加速,在androidmanifest.xml中application添加android:hardwareAccelerated="true".不过这个需要在and ...

  7. java 语言里 遍历 collection 的方式

    我来简单说一下吧,一般有2种方法来遍历collection中的元素,以HashSet为例子HashSet hs=new HashSet();hs.add("hello");hs.a ...

  8. rsync不存在用户处理CPU消耗拒绝服务漏洞

    受影响产品: rsync 3.1.0 漏洞描述: CVE ID:CVE-2014-2855 rsync是一款文件同步管理软件. rsync处理不存在用户时存在安全漏洞,可消耗大量CPU资源,造成拒绝服 ...

  9. 8 种 NoSQL 数据库系统对比

    导读:Kristóf Kovács 是一位软件架构师和咨询顾问,他最近发布了一片对比各种类型NoSQL数据库的文章. 虽然SQL数据库是非常有用的工具,但经历了15年的一支独秀之后垄断即将被打破.这只 ...

  10. How to modify squashfs image

    /********************************************************************** * How to modify squashfs ima ...