mysql存储过程之游标遍历数据表
今天写一个mysql存储过程,根据自己的需求要遍历一个数据表,因为对存储过程用的不多,语法不甚熟悉,加之存储过程没有调试环境,花了不少时间才慢慢弄好,故留个痕迹。
1 BEGIN
2 DECLARE Done INT DEFAULT 0;
3
4 DECLARE CurrentLingQi INT;
5
6 DECLARE ShizuName VARCHAR(30);
7 /* 声明游标 */
8 DECLARE rs CURSOR FOR SELECT NodeName, LingQi FROM socialrelation;
9 /* 异常处理 */
10 DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET Done = 1;
11
12 /* 打开游标 */
13 OPEN rs;
14
15 /* 逐个取出当前记录LingQi字段的值,需要进行最大值的判断 */
16 FETCH NEXT FROM rs INTO ShizuName, CurrentLingQi;
17 /* 遍历数据表 */
18 REPEAT
19 IF NOT Done THEN
20 SET CurrentLingQi = CurrentLingQi + 60;
21 /* 如果更新后灵气值大于允许的最大值,则就设置为最大值 */
22 IF CurrentLingQi >= 1800 THEN
23 UPDATE socialrelation SET LingQi = 1800 WHERE NodeName = ShizuName;
24 ELSE
25 /* 否则,正常更新 */
26 UPDATE socialrelation SET LingQi = LingQi + 60 WHERE NodeName = ShizuName;
27 END IF;
28 END IF;
29
30 FETCH NEXT FROM rs INTO ShizuName, CurrentLingQi;
31
32 UNTIL Done END REPEAT;
33
34 /* 关闭游标 */
35 CLOSE rs;
36 END
今天写一个mysql存储过程,根据自己的需求要遍历一个数据表,因为对存储过程用的不多,语法不甚熟悉,加之存储过程没有调试环境,花了不少时间才慢慢弄好,故留个痕迹。
mysql存储过程之游标遍历数据表的更多相关文章
- MySQL存储过程-->通过游标遍历和异常处理迁移数据到历史表
-- 大表数据迁移,每天凌晨1点到5点执行,执行间隔时间10分钟,迁移旧数据到历史表. DELIMITER $$ USE `dbx`$$ DROP PROCEDURE IF EXISTS `pro_x ...
- SQL游标遍历数据表
DECLARE @资产编号 VARCHAR(50) ,@gsid VARCHAR(50) DECLARE test_Cursor CURSOR LOCAL FOR SELECT 资产编号,gsid F ...
- MySQL存储过程之游标实战
MySQL存储过程之游标实战 博主日前在解决一个项目需求时,没有什么好的方法,于是就来学习存储过程了,之前也是接触过,奈何年少贪玩,竟是全部又还给了大学老师-苦不堪言呐-. 先说一下业务需求吧 ...
- MariaDB MariaDB、MySQL存储过程、游标基础应用举例说明
MariaDB.MySQL存储过程.游标基础应用举例说明 by:授客 QQ:1033553122 测试环境: MariaDB-10.0.19-centos7-x86_64 实践操作: # 创建测试数据 ...
- MYSQL中约束及修改数据表
MYSQL中约束及修改数据表 28:约束约束保证数据的完整性和一致性约束分为表级约束和列级约束约束类型包括: NOT NULL(非空约束) PRIMARY KEY(主键约束) UNI ...
- Oracle中使用游标转换数据表中指定字段内容格式(拼音转数字)
应用场景:将数据表TB_USER中字段NNDP的内容中为[sannanyinv]转换为[3男1女] 主要脚本:一个游标脚本+分割字符串函数+拼音转数字脚本 操作步骤如下: 1.创建类型 create ...
- MySQL学习笔记_4_MySQL创建数据表(下)
MySQL创建数据表(下) 五.数据表类型及存储位置 1.MySQL与大多数数据库不同,MySQL有一个存储引擎概念.MySQL可以针对不同的存储需求选择不同的存储引擎. 2. showengines ...
- C# 利用mysql.data 在mysql中创建数据库及数据表
C# 利用mysql.data 在mysql中创建数据库及数据表 using System; using System.Collections.Generic; using System.Linq; ...
- mysql 导入导出数据库、数据表的方法
mysql 导入导出数据库.数据表的方法. Linux操作系统中,均在控制台下操作.1,导入数据库:前提:数据库和数据表要存在(已经被创建)(1)将数据表 test_user.sql 导入到test ...
随机推荐
- LightOJ1031 Easy Game(区间DP)
我可能真想不到这题是区间DP,不过知道是区间DP想了下就AC了. dp[i][j]表示局面为ai...aj先手能获得与后手得分的最大差值 那么转移到当前状态就是枚举中间的位置,分成两边,其中一边先手全 ...
- Assets/Sciprts/GameSciprt.js(97,46): BCE0044: expecting :, found ','.
function BuildDeck() { var totalRobots:int=4; var card:Object; var i:int; for(i=0;i<totalRobots;i ...
- BZOJ3886 : [Usaco2015 Jan]Moovie Mooving
f[i]表示用i集合内的电影可以达到的最长时间 f[i]向f[i|(1<<j)]更新,此时的时间为第j部电影在f[i]前的最晚上映时间 先排序一遍离散化后用前缀最大值解决 时间复杂度$O( ...
- 【推荐】开放静态文件 CDN服务staticfile.org
虽然国内外有很多类似的服务器,比如最初的google ajax api,还有后来的sae,百度等都有提供,但是也都有不同的弊端,比如国内访问速度慢.提供的静态文件不全等...staticfile有望解 ...
- Mina传递对象
利用Apache MINA来传递对象,这对了MINA来说非常容易,并且这也是Java网络编程中很常用的应用. 首先看两个用来传递的Java对象MyRequestObject和MyResponseObj ...
- SQL Server事务的隔离级别
SQL Server事务的隔离级别 ########## 数据库中数据的一致性 ########## 针对并发事务出现的数据不一致性,提出了4个级别的解决方法: 隔离级别 第一类丢失更新 脏读 ...
- VS - 实用技巧
将Javascript 左边花括号置于新行 工具-选项-文本编辑器-格式设置-新行-全勾 开启调试自动窗口 || 监视变量 VS2012以下版本 CTRL + D + Q 其他版本 调试-窗口-自动窗 ...
- NBUT 1525 Cow Xor(01字典树+前缀思想)
[1525] Cow Xor 时间限制: 2000 ms 内存限制: 65535 K 问题描述 农民约翰在喂奶牛的时候被另一个问题卡住了.他的所有N(1 <= N <= 100,000)个 ...
- metasploit-post模块信息
Name Disclosure Date Rank Description ---- ...
- ie8默认主页/起始页无法修改
HKEY_CURRENT_USER\Software\Policies\Microsoft 展开Microsoft,查看其下是否包含子项 Internet Explorer? 若有,请删除.这一步应该 ...