/* 声明游标 */ DECLARE rs CURSOR FOR SELECT column_name FROM table_name; /* 异常处理 */ DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET Done = 1;
declare i int; declare a int; /* 打开游标 */ OPEN rs;
/* 逐个取出当前记录column_name字段的值s */ FETCH NEXT FROM rs INTO tempValue; /* 遍历数据表 */ REPEAT IF NOT Done THEN set a=1; set i=0; while i<tempValue.length do a=tempValue.substring(i,i+1); set i=i+1; end while;
/* 如果更新后灵气值大于允许的最大值,则就设置为最大值 */ /* IF CurrentLingQi >= 1800 THEN UPDATE socialrelation SET LingQi = 1800 WHERE NodeName = ShizuName; ELSE*/ /* 否则,正常更新 */ /*UPDATE socialrelation SET LingQi = LingQi + 60 WHERE NodeName = ShizuName; END IF; */ END IF;
/* 声明游标 */ DECLARE rs CURSOR FOR SELECT column_name FROM table_name; /* 异常处理 */ DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET Done = 1;
declare i int; declare a int; /* 打开游标 */ OPEN rs;
/* 逐个取出当前记录column_name字段的值s */ FETCH NEXT FROM rs INTO tempValue; /* 遍历数据表 */ REPEAT IF NOT Done THEN set a=1; set i=0; while i<tempValue.length do a=tempValue.substring(i,i+1); set i=i+1; end while; END IF;
/* 声明游标 */
DECLARE rs CURSOR FOR SELECT column_name FROM table_name;
/* 异常处理 */
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET Done = 1;
declare i int;
declare a int; /* 打开游标 */
OPEN rs;
/* 逐个取出当前记录column_name字段的值s */
FETCH NEXT FROM rs INTO tempValue;
/* 遍历数据表 */
REPEAT
IF NOT Done THEN
set a=1;
set i=0;
while i<tempValue.length do
a=tempValue.substring(i,i+1);
set i=i+1;
end while;
/* 如果更新后灵气值大于允许的最大值,则就设置为最大值 */
/* IF CurrentLingQi >= 1800 THEN
UPDATE socialrelation SET LingQi = 1800 WHERE NodeName = ShizuName;
ELSE*/
/* 否则,正常更新 */
/*UPDATE socialrelation SET LingQi = LingQi + 60 WHERE NodeName = ShizuName;
END IF;
*/
END IF;
FETCH NEXT FROM rs INTO tempValue;
UNTIL Done END REPEAT;
/* 关闭游标 */
CLOSE rs;
END
我写了大概,然后就不知道该怎么写了
/* 声明游标 */
DECLARE rs CURSOR FOR SELECT column_name FROM table_name;
/* 异常处理 */
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET Done = 1;
declare i int;
declare a int; /* 打开游标 */
OPEN rs;
/* 逐个取出当前记录column_name字段的值s */
FETCH NEXT FROM rs INTO tempValue;
/* 遍历数据表 */
REPEAT
IF NOT Done THEN
set a=1;
set i=0;
while i<tempValue.length do
a=tempValue.substring(i,i+1);
set i=i+1;
end while;
END IF;
FETCH NEXT FROM rs INTO tempValue;
UNTIL Done END REPEAT;
/* 关闭游标 */
CLOSE rs;
END