2014-07-23 30 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工作臺。重新啓動環境解決了我的問題。