B.5.7.2 TEMPORARY テーブルに関する問題

次のリストは、TEMPORARY テーブルの使用に関する制限を示しています。

  • TEMPORARY テーブルのタイプは、MEMORYMyISAMMERGE、または InnoDB のみです。

    MySQL Cluster では、一時テーブルはサポートされません。

  • 同じクエリーで TEMPORARY テーブルを複数回参照することはできません。たとえば、次のステートメントは動作しません。

    mysql> SELECT * FROM temp_table, temp_table AS t2;
    ERROR 1137: Can't reopen table: 'temp_table'


  • SHOW TABLES ステートメントでは TEMPORARY テーブルは一覧表示されません。

  • RENAME を使用して TEMPORARY テーブルの名前を変更することはできません。ただし、代わりに ALTER TABLE を使用できます。

    mysql> ALTER TABLE orig_name RENAME new_name;
  • レプリケーションで一時テーブルを使用する場合の既知の問題があります。詳細は、セクション17.4.1「レプリケーションの機能と問題」を参照してください。

  • 一時テーブルがストアドファンクションの外部で作成されて、複数の呼び出し元関数および呼び出し先関数で参照される場合は、次のエラーが発生することがあります。

    ERROR 1137: Can't reopen table: 'temp_table'

Download this Manual
EPUB - 7.5Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb
User Comments
  Posted by Devang Modi on August 30, 2011
Combine queries for Insert and Select always obeys Innodb locking rules
if one of the source table is based on Innodb engine.
It is also possible that the INSERT activity applicable to TEMPORARY
table which is not InnoDB engine. It is also possible that in SELECT
section with INNODB, some other TEMPORARY Tables are used.
Devang Modi
Sign Up Login You must be logged in to post a comment.