我创建了一个存储过程,以便将两个给定日期之间的日期列表放入临时表中。该临时表应该有2列:int类型的id和date类型的日期。问题是在输出中我只得到day列,id列未定义。 我做错了什么?
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `days`(IN dateStart DATE, IN dateEnd DATE)
BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS date_range (id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, day DATE);
Delete from date_range;
WHILE dateStart <= dateEnd DO
INSERT INTO date_range(day) VALUES (dateStart);
SET dateStart = DATE_ADD(dateStart, INTERVAL 1 DAY);
END WHILE;
END
这是存储过程的调用和输出:
答案 0 :(得分:1)
删除存储过程之后,创建一个与删除的存储过程同名的新存储过程,需要重新启动MySql工作台。重启环境解决了我的问题。