【发布时间】:2018-08-07 05:22:05
【问题描述】:
我现在正在 MySQL 中创建存储例程,查询时出现此错误。
SQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your SQL server version for the right syntax to use near 'DATE_ADD(sDate, INTERVAL 1 DAY); END WHILE; END IF; END' at line 30
这是我的查询:
BEGIN
DECLARE code CHAR (5) DEFAULT (00000);
IF (SELECT COUNT(allocationDate) FROM ROOM_ALLOCATION WHERE allocationDate
BETWEEN startDate AND (SELECT DATE_SUB(endDate,INTERVAL 1 DAY)) > 0) THEN
WHILE DATEDIFF(sDate, eDate) <> 0 DO
SET code = 0;
WHILE code = 0 DO
SET code =(SELECT LEFT(MD5(RAND()*100), 5));
IF exists (SELECT * FROM BOOKING_DETAIL WHERE bDetailCode LIKE code)
THEN
SET code = 0;
END IF;
END WHILE;
INSERT INTO ROOM_ALLOCATION (rAllocationCode, roomID, bDetailID, allocationDate)
VALUES
(rAlloCode, roIDm, bDetID, sDate);
DATE_ADD(sDate, INTERVAL 1 DAY);
END WHILE;
END IF;
END
我很绝望,这个查询哪里出错了?
先谢谢你。
问候
【问题讨论】:
-
你没有对这个声明做任何事情
DATE_ADD(sDate, INTERVAL 1 DAY);你想用它做什么?选择或设置变量?
标签: mysql loops stored-procedures while-loop do-while