求助:mysql语法错误

story19850919 2011-06-01 10:31:06
create procedure test()

begin
DECLARE o datetime
DECLARE n int
DECLARE i int
DECLARE cur_1 CURSOR FOR SELECT dateTime FROM sword_00242_1440
DECLARE CONTINUE HANDLER FOR NOT FOUND SET @n=1

set @i=0
SET @n=0
OPEN cur_1

while @n=0 do
@i=@i+1
fetch cur_1 into o
update sword_00242_1440 set dateTime=adddate(dateTime,@i) where dateTime=@o
end while

close cur_1
end

call test()

错误信息: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 'datetime
DECLARE n int
DECLARE i int
DECLARE cur_1 CURSOR FOR SELECT dateTime ' at line 3
(0 ms taken)

没用过mysql的存储过程,语法也不懂,最近要准备测试数据,将数据库中的datetime字段每行递增加一天,请问哪里出错了?
...全文
57 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2011-06-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 story19850919 的回复:]
现在没有语法错误了,可是并没有实现每行时间递增加一天,麻烦再帮忙看看。
[/Quote]
逻辑错误自己先找找,有问题再问
story19850919 2011-06-01
  • 打赏
  • 举报
回复
现在没有语法错误了,可是并没有实现每行时间递增加一天,麻烦再帮忙看看。
wwwwb 2011-06-01
  • 打赏
  • 举报
回复
DELIMITER $$
DROP PROCEDURE IF EXISTS test$$
CREATE PROCEDURE test()

BEGIN
DECLARE o DATETIME;
DECLARE n INT ;
DECLARE i INT ;
DECLARE cur_1 CURSOR FOR SELECT DATETIME FROM sword_00242_1440;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET @n=1;

SET @i=0;
SET @n=0 ;
OPEN cur_1;

WHILE @n=0 DO
SET @i=@i+1;
FETCH cur_1 INTO o;
UPDATE sword_00242_1440 SET DATETIME=ADDDATE(DATETIME,@i) WHERE DATETIME=@o;
END WHILE;

CLOSE cur_1;
END$$
DELIMITER ;

CALL test()

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧