2017-10-30 6 views
0

MySQLのマニュアルによると、セッションが閉じられた後に一時テーブルが消去されるとのことですか?これは、定期的なブロックのブロック内に一時テーブルを作成すると、db接続を終了した後にこのテーブルが自動的に削除されることを意味しますか?定期的なイベントが時間をかけて実行されると、テーブルが見つからないでしょうか?

この問題の解決方法を教えてください。定期的なイベントの中にクエリのレコードをいくつか保存する必要があります。MySQLの定期的なイベント内にテンポラリテーブルを作成できますか?

+2

"定期的なイベントの中にクエリのレコードをいくつか保存する必要があります。" - 一時テーブルを使用しないでください! –

+0

@MitchWheat代わりに使用することをお勧めしますか? – Kareem

+1

永久的なテーブル、多少明らかです。 –

答えて

2

これは間違いありません.MySQLでは、テンポラリテーブルはセッションが有効な間だけ有効です。 Source

(MS SQL Serverとは対照的に)MySQLにはグローバルテンポラリテーブルはありませんが、MS SQL Serverのグローバルテンポラリテーブルを使用しているわけではありませんとにかく本当に良い練習...データを永続化する必要がある場合は、常設テーブルを使用する必要があります。

+0

私は実際にそれを考えましたが、問題は( – Kareem

+1

)MySQLイベントスケジューラのコンテキストでこの概念を明確にするために、スケジュールされたイベントの各呼び出しは、独自の一意の 'CONNECTION_ID()'を持つ独自のセッションです。イベントが長く実行されているため、実行中に再度呼び出された場合、2つの呼び出しはお互いの一時表を見ることができません。 –

関連する問題