2017-04-11 49 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

临时表可见只对当前的会话,并在会话关闭 自动删除。

这意味着临时表仅在创建它的事件中可见和可用。