用 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; #读取游标中的数据一一复给变量myid。
select 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();
用 Navicat 写mysql的游标的更多相关文章
- 利用navicat写mysql的存储过程
最近项目经理让我给新的活动的预留一个插入红包和查看详情的sql,方便在项目出问题的做一些紧急操作,我想了下这里面还涉及到挺多逻辑和挺多表的一句句查也不方便啊,干脆写到存储过程里,于是开始在navica ...
- 使用navicat for mysql图形界面操作数据库、使用node.js操作数据库写接口
1.先启动MYSQL服务 2.打开navicat for mysql, 点击链接,输入如下的内容: 3.新建数据表 4.数据库(新建一个db.js) //数据库链接配置 module.exports ...
- Navicat可视化MySQL数据库
Navicat可视化MySQL数据库 Navicat内部封装了所有的操作数据库的命令,用户只需要点击操作即可,无需书写sql语句. navicat能够充当多个数据库的客户端. 具体操作参考百度. py ...
- MySQL的下载与安装 和 navicat for mysql 安装使用
新手上路-MySQL安装 目录结构 Windows平台 MySQL安装 示例数据导入 Linux平台 CentOS系统 Ubuntu系统 FAQ 密码生成工具-keepass 修改提示符 图形工具 删 ...
- MySql使用游标Cursor循环(While)更新数据
#要修改的变量 DECLARE var_ID VARCHAR(50) DEFAULT ''; #需要修改的数据的数量 DECLARE var_UpdateCount INT; #当前循环次数 DECL ...
- 【mysql】利用Navicat for MySQL的使用
1. 查看sql语句 如果忘记了某个SQL语句怎么写,可以利用Navicat for MySQL的历史日志来查看 在Navicat for MySQL中,直接对数据库进行想要的操作,然后点击工具-&g ...
- mysql数据库管理工具navicat for mysql怎么用
mysql数据库管理工具navicat for mysql,对于不怎么喜欢图形界面或者不太方便使用SQL的时候.我们可以通过用这个图形界面数据库管理工具来管理mysql,本经验咗嚛就简单介绍一下怎么用 ...
- navicat实现Mysql数据备份
方法/步骤 使用navicat工具连接mysql数据库,这里以navicat for Mysql工具为例.如果数据库在本机,那么连接ip处写localhost即可,如果数据库在其他机器,那需要 ...
- 数据库之mysql篇(4)—— navicat操作mysql
navicat 1.简介: navicat是一个软件,旗下针对不同数据库有不同的软件版本,支持以下数据库,还是挺厉害的: 这里我采用navicat for mysql版本.实现图形化的操作mysql, ...
随机推荐
- net 的单元测试 初学
1. 都要以一个方法 这样的去测试 2. 利用工具 Install-Package Moq -Version 4.0 (最高的是4.5 4.0适用于自己项目的版本) Moq.dll 进行测试 ...
- libdispatch for Linux
这个Dispatch是苹果的一个高效的处理库,它在ubuntu上的安装如下: Build/Runtime Requirements 如下: libBlocksRuntime libpthread_wo ...
- PHP 配置文件中open_basedir选项作用
如下是php.ini中的原文说明以及默认配置: ; open_basedir, if set, limits all file operations to the defined directory ...
- c语言基础
- 如何在 Linux 终端中知道你的公有 IP
导读 在本文中我将会介绍在几种在 Linux 终端中查看你的公有 IP 地址的方法.这对普通用户来说并无意义,但 Linux 服务器(无GUI或者作为只能使用基本工具的用户登录时)会很有用.无论如何, ...
- 神奇的盒模型(BFC)
上一篇我提到每一个元素都有自己的display属性,其属性值可以改变.其改变的方式,可以利用神奇的css盒模型(BFC). 盒模型,是css可视化格式化系统的基础,可以用于元素定位和网页布局.一个盒模 ...
- linux下oracle 10g的sqlplus无法使用
问题如标题所示. 解决办法, 1,root用户登录,建立软连接 cd / cd /usr/bin ln -s /home/oracle/product/10.2.0/db_1/bin/sqlplus ...
- JavaScript中“typeof”运算符与“instanceof”运算符的差异
在JavaScript中,运算符“typeof”和“instanceof”都可以用来判断数据的类型,那么这两个运算符有什么不同之处呢? 差异一:使用方式不同. 最明显的差异就是这两个运算符的使用方式了 ...
- C++资料收集&整理
类别 地址 ZLib c++ zlib(qt)压缩与解压缩 STL STL学习之map容器(2)_insert Basic std::nothrow new (nothrow) T() 的原理 C++ ...
- 使用as3控制动画
1.建立按钮元件 2.在属性面板使用英文为按钮元件命名,例如playButton 3.建立函数,例如 function startMovie(event:MouseEvent):void { thi ...