zoukankan      html  css  js  c++  java
  • 用 Navicat 写mysql的游标

    千言万语也比不上一个简单直接明了的小例子:

    CREATE PROCEDURE pro_users()
    begin
             DECLARE myid int;
             DECLARE no int;
             DECLARE mysellerid char(10);    
             DECLARE mylink char(50);    
             DECLARE myip char(50);    
             DECLARE mycursor CURSOR FOR select id from table1; #把select出来的数据全部保存到游标mycursor中
             DECLARE CONTINUE HANDLER FOR NOT FOUND SET no=1; #当读到数据的最后一条时,设置no变量为1
             SET no=0; #初始化变量no为0
             OPEN mycursor; #打开游标
                         while no=0 do #判断是不是到了最后一条数据
                                     fetch mycursor into myid; #读取游标中的数据一一复给变量myidselect sellerid,link,ip into mysellerid,mylink,myip
                                        from table2 order by RAND() LIMIT 1;
                                        update table1 set 
                                        wangba_uid = ceil(rand()*500),
                                        wangba_sellerid = mysellerid,
                                        wangba_link = mylink,
                                        wangba_ip = myip
                                        where id = myid;
                         end while;
             close mycursor;#最后关闭游标.游标里面存放了那么多数据总是要清理掉的吧。
    end

    注意了:这些声明语法必须写在存储过程里面才生效,否则navicat就提示语法错误。

    完了执行一下:

    call pro_users()

    与sql不同,mysql执行存储过程使用call命令。

    删除存储过程:

    drop PROCEDURE pro_users

    删除存储过程,mysql和sql一样都用drop。

    其他:

    select sellerid,link,ip into mysellerid,mylink,myip from table2 order by RAND() LIMIT 1;

    mysql使用select into的形式给变量赋值,RAND()随机记录,LIMIT 1代替TOP 1

    这句话在sql里面的写法:

    select top 1 mysellerid=sellerid,mylink=link,myip=ip from table2 order by newid();
  • 相关阅读:
    Python什么是二次开发的意义?python在.net项目采用
    斐波那契数
    Java 兑换ObjectC代码
    第18本:《整理的艺术》
    第16本:《视觉繁美:信息可视化方法与案例解析》
    第14本:《李鸿章传》
    第10本:《设计心理学》
    第17本:《代码的未来》
    第15本:《视不可当----信息图与可视化传播》
    第13本:《富爸爸,穷爸爸》
  • 原文地址:https://www.cnblogs.com/vinsonLu/p/5132771.html
Copyright © 2011-2022 走看看