実際のテーブルを一時的にシャドーし、実際のテーブルと同じ名前と構造を持つ一時テーブルを作成したいと考えています。
独立して、すべての機能が期待どおりに機能します。これにより、一時テーブルが再び削除されるまで前のテーブルを非表示にする一時テーブルが作成されます。
CREATE TEMPORARY TABLE t (test INT);
これにより、元のテーブルと同じ構造 (ただし名前は異なる) の一時テーブルが作成されます。
CREATE TEMPORARY TABLE t2 LIKE t;
しかし、これはエラーになります:
CREATE TEMPORARY TABLE t LIKE t;
1066 - テーブル/エイリアスが一意ではありません: 't'
このテーブルは、元のテーブルからフェッチすると時間がかかりすぎるグループ化されたデータを保持する永続キャッシュです。このデータは、レポートの生成に使用されます。部分レポートの場合、データのサブセットから新たにキャッシュを作成したいことがあります。一時テーブルはこれに最適です。元のキャッシュを新しいデータでオーバーレイし、その上でレポート機能を実行すると、接続が終了すると自動的に削除されますが、他のすべてのプロセスは実際の永続テーブルを問題なく使用できます。