2014-07-23 29 views
2

我创建了一个存储过程来获取2个给定日期之间的日期列表到一个临时表中。该临时表应该有2列:int类型的id和date类型的日期。问题是,在输出我只得到日栏,id列未定义。 我做错了什么?MySQL - 临时表中的未定义列

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 

这是调用和存储过程的输出: enter image description here

+0

不要在程序结束时选择任何东西吗? –

+0

@juergend no。我打电话给这样的程序:'call days('2014-07-01','2014-07-31'); SELECT * FROM date_range;' – laura

+0

它适用于我 –

回答

1

下探存储过程后,之后,创建具有相同的名称为被丢弃的一个新的存储过程,它是必须重新启动MySql工作台。重新启动环境解决了我的问题。