2017-04-11 46 views
0

我有mysql的5.5 我創建了一個storred程序MySQL事件運行,而不是 「留」

CREATE DEFINER=`root`@`%` PROCEDURE `refresh_mobileTemp`() 
BEGIN 
DROP TABLE IF EXISTS mobileTemp; 
CREATE TEMPORARY TABLE mobileTemp AS 
(SELECT distinct 
... 
); 

END 

運行

call refresh_mobileTemp(); 

創建臨時表。

比我放棄了臨時表,並創建了一個事件:

CREATE EVENT `schedulerMobileTemp` 
ON SCHEDULE every 10 SECOND 
ON COMPLETION PRESERVE ENABLE 
DO 
    CALL refresh_mobileTemp(); 

每10秒在進程列表中顯示的是創建臨時表的過程 enter image description here但比如果我叫select * from mobileTemp它返回:錯誤代碼:表'mobileTemp'不存在

我失蹤了什麼?

在此先感謝

+1

臨時表只存在於創建它們的會話中,並且只在該會話結束之前存在。哦,那是MYSQL會議的方式 – RiggsFolly

回答

3

As explained in the manual

臨時表可見只對當前的會話,並在會話關閉 自動刪除。

這意味着臨時表僅在創建它的事件中可見和可用。