sql数据准备:
DROP TABLE IF EXISTS T_User;
CREATE TABLE T_User(
id INT PRIMARY KEY,
age INT,
tname VARCHAR(20)
);
INSERT INTO T_User VALUE(1,11,'abc1');
INSERT INTO T_User VALUE(2,12,'abc2');
INSERT INTO T_User VALUE(3,13,'abc3');
INSERT INTO T_User VALUE(4,14,'abc4');
INSERT INTO T_User VALUE(5,15,'abc5');
INSERT INTO T_User VALUE(6,16,'abc6');游标代码:
CREATE PROCEDURE curdemo()
BEGIN
DECLARE age1 INT;
DECLARE id1 INT;
DECLARE Cur CURSOR FOR SELECT id,age FROM T_User;
OPEN Cur;
FETCH Cur INTO id1,age1;
WHILE @@fetch_status=0
BEGIN
UPDATE T_User SET age=age1+1 WHERE id=id1;
FETCH Cur INTO id1,age1;
END
CLOSE Cur;
DEALLOCATE Cur;
END############################################################################CREATE PROCEDURE curdemo1()
BEGIN
DECLARE age1 INT;
DECLARE id1 INT;
DECLARE Cur CURSOR FOR SELECT id,age FROM T_User;
DECLARE EXIT HANDLER FOR NOT FOUND CLOSE Cur;
OPEN Cur;
REPEAT
FETCH Cur INTO id1,age1;
UPDATE T_User SET age=age1+1 WHERE id=id1;
UNTIL done
END REPEAT;
CLOSE Cur;
DEALLOCATE;
END;这两个游标都不对,我用的是Mysql5.1的数据库,老是报语句错误。
错误提示:
Query : CREATE PROCEDURE curdemo() BEGIN DECLARE age1 INT
Error Code : 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
Execution Time : 00:00:00:000
Transfer Time : 00:00:00:000
Total Time : 00:00:00:000....很多,都是这类的错误。谁能帮我解决一下,谢谢!!!!
DROP TABLE IF EXISTS T_User;
CREATE TABLE T_User(
id INT PRIMARY KEY,
age INT,
tname VARCHAR(20)
);
INSERT INTO T_User VALUE(1,11,'abc1');
INSERT INTO T_User VALUE(2,12,'abc2');
INSERT INTO T_User VALUE(3,13,'abc3');
INSERT INTO T_User VALUE(4,14,'abc4');
INSERT INTO T_User VALUE(5,15,'abc5');
INSERT INTO T_User VALUE(6,16,'abc6');游标代码:
CREATE PROCEDURE curdemo()
BEGIN
DECLARE age1 INT;
DECLARE id1 INT;
DECLARE Cur CURSOR FOR SELECT id,age FROM T_User;
OPEN Cur;
FETCH Cur INTO id1,age1;
WHILE @@fetch_status=0
BEGIN
UPDATE T_User SET age=age1+1 WHERE id=id1;
FETCH Cur INTO id1,age1;
END
CLOSE Cur;
DEALLOCATE Cur;
END############################################################################CREATE PROCEDURE curdemo1()
BEGIN
DECLARE age1 INT;
DECLARE id1 INT;
DECLARE Cur CURSOR FOR SELECT id,age FROM T_User;
DECLARE EXIT HANDLER FOR NOT FOUND CLOSE Cur;
OPEN Cur;
REPEAT
FETCH Cur INTO id1,age1;
UPDATE T_User SET age=age1+1 WHERE id=id1;
UNTIL done
END REPEAT;
CLOSE Cur;
DEALLOCATE;
END;这两个游标都不对,我用的是Mysql5.1的数据库,老是报语句错误。
错误提示:
Query : CREATE PROCEDURE curdemo() BEGIN DECLARE age1 INT
Error Code : 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
Execution Time : 00:00:00:000
Transfer Time : 00:00:00:000
Total Time : 00:00:00:000....很多,都是这类的错误。谁能帮我解决一下,谢谢!!!!
解决方案 »
- mysql数据库的sql语句查询
- 求MySQL安装问题解答?
- mysql同步问题
- 熟悉linux下安装mysql的请进
- 启动mysql服务器失败??
- 一个查询的问题:过滤相同记条,并计算此记录条数
- 在安装mysql-4.0.26 时,出现了问题,哪位大侠能告诉我是怎么回事呀??(我的操作系统是WIN 2000 server)
- sos:有关linux下postgres的JDBC程序配置问题
- 提一个可能大家认为简单的问题,不要见笑:如何用select取得表中第一个纪录
- 我的LINUX在装MYSQL时.gz格式的!在MAKE时,提示找不到linux/autoconf.h文件,无法编译昨办?
- MYSQL数据库 导入后,不能插入数据
- mysql数据库查询统计
CREATE PROCEDURE curdemo()
BEGIN
DECLARE age1 INT;
DECLARE id1 INT;
DECLARE Cur CURSOR FOR SELECT id,age FROM T_User;
OPEN Cur;
FETCH Cur INTO id1,age1;
WHILE @@fetch_status=0
BEGIN
UPDATE T_User SET age=age1+1 WHERE id=id1;
FETCH Cur INTO id1,age1;
END
CLOSE Cur;
DEALLOCATE Cur;
END//
delimiter ;
CREATE PROCEDURE curdemo()
BEGIN
DECLARE age1 INT;
DECLARE id1 INT;
DECLARE done INT DEFAULT 0;
DECLARE Cur CURSOR FOR SELECT id,age FROM T_User;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN Cur;
FETCH Cur INTO id1,age1;
WHILE done=0 DO
UPDATE T_User SET age=age1+1 WHERE id=id1;
FETCH Cur INTO id1,age1;
END WHILE ;
CLOSE Cur;
END$$
DELIMITER ;其它的自行修改
CREATE PROCEDURE curdemo()
BEGIN
DECLARE age1 INT;
DECLARE id1 INT;
DECLARE Cur CURSOR FOR SELECT id,age FROM T_User;
OPEN Cur;
FETCH Cur INTO id1,age1;
WHILE @@fetch_status=0
BEGIN
UPDATE T_User SET age=age1+1 WHERE id=id1;
FETCH Cur INTO id1,age1;
END
CLOSE Cur;
DEALLOCATE Cur;
END//
delimiter ;