2012-06-21 22 views
10

一時テーブルを削除する際に問題が発生しました。ユーザーアカウントには「drop」特権がありません。私はセキュリティ上の理由からその特権を与えたくない。私は「一時的に落とす」のような特権を見つけようとしましたが、そうではありません。唯一の選択肢は、すべての 'drop table'ステートメントを削除することです。 DBセッションの終了後に一時テーブルが自動的に削除されることはわかっています。しかし、私はMySQLにこの仕事を残す副作用があるかどうかはわかりません。ご意見をお聞かせください。mysqlに一時テーブルを削除する必要がありますか?

+0

をhttp://dev.mysql.com/doc/refman/5.1/en/privileges-provided.html#priv_create-temporary-tables _to一時的に権限を保持し、 nontemporaryテーブルが別々の場合、この状況の一般的な回避策は、一時テーブルの使用専用のデータベースを作成することです。そのデータベースに対して、CREATE TEMPORARY TABLES権限と、そのユーザーによって実行される一時的なテーブル操作に必要なその他の権限を付与することができます。 – Lucky

答えて

15

一時表はできるだけ早くあなたがデータベースから切断として自動的に削除され

TEMPORARY表には、現在の接続にのみ表示され、接続が閉じられたときに自動的に削除され

http://dev.mysql.com/doc/refman/5.1/en/create-table.html

それを作成し、使用して、それらの削除を気にしないでください。

+1

接続プール(hikari、c3p0など)を使用すると、接続おそらくあなたが予想していたよりも長く開いているでしょうので、注意してください。その場合、一時テーブルを手動で削除することは意味があります。 – Alden

+1

@Aldenソフトウェアを正しく構成して、すべてが期待通りに機能するようにするのは理にかなっています。接続プーラーは、クライアント切断時に接続をリセットする必要があります。 – zerkms

0

現在のマシンのRAM空間を使用します。 その使用が終了すると、次のステップで一時テーブルを削除することをお勧めします

関連する問題