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();
  • 相关阅读:
    根据现有文件生成图形化的目录树
    一个最简的短信验证码倒计时例子
    将指定目录下的所有资源整体迁移到另一个目录下
    通过 url 获取相应的 location 信息
    node-glob的*匹配
    mysql将查询出来的一列数据拼装成一个字符串
    Call to undefined function mysql_connect()错误原因
    JavaScript转unix时间戳
    .net3.0 中跨线程访问控件
    WPF的线程模型
  • 原文地址:https://www.cnblogs.com/vinsonLu/p/5132771.html
Copyright © 2011-2022 走看看