2017-04-11 15 views
0

"滞在" 私は私がMySQLのイベントが実行されますがない

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

END 

は、一時テーブルが作成された

call refresh_mobileTemp(); 

を実行しているstorred手順を作成したのMySQL 5.5 を持っています。私は一時テーブルをドロップし、イベント作成したより

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

一時テーブルは、現在のセッションにのみ表示され、セッションが閉じられたとき が自動的に削除されます。

これは、テンポラリテーブルが表示され、それを作成するイベント内でのみ使用可能であることを意味します。

関連する問題