MariaDB-一時テーブル

一部の操作は、速度または使い捨てデータのために一時テーブルの恩恵を受けることができます。一時テーブルの有効期間は、コマンドプロンプトから、PHPスクリプトを使用して、またはクライアントプログラムを介して使用するかどうかに関係なく、セッションの終了時に終了します。また、通常の方法ではシステムに表示されません。SHOW TABLESコマンドは、一時テーブルを含むリストを表示しません。

一時テーブルを作成する

CREATE TABLEステートメント内のTEMPORARYキーワードは、一時テーブルを生成します。以下の例を確認してください-

mysql>CREATE TEMPORARY TABLE order (
   item_name VARCHAR(50) NOT NULL
   , price DECIMAL(7,2) NOT NULL DEFAULT 0.00
   , quantity INT UNSIGNED NOT NULL DEFAULT 0
);

一時テーブルを作成する際に、LIKE句を使用して、既存のテーブル、つまりすべての一般的な特性を複製できます。一時表を生成するために使用されるCREATETABLEステートメントは、TEMPORARYキーワードの結果としてトランザクションをコミットしません。

一時テーブルは非一時テーブルとは異なり、セッションの終了時に削除されますが、特定の競合が発生する可能性があります-

  • 期限切れのセッションからのゴースト一時テーブルと競合することがあります。

  • 非一時テーブルのシャドウ名と競合する場合があります。

Note −一時テーブルは、MariaDBが差分参照と見なすため、既存の非一時テーブルと同じ名前を持つことができます。

管理

MariaDBでは、一時テーブルを作成するための権限をユーザーに付与する必要があります。GRANTステートメントを使用して、管理者以外のユーザーにこの特権を付与します。

GRANT CREATE TEMPORARY TABLES ON orders TO 'machine122'@'localhost';

一時テーブルを削除する

一時テーブルは基本的にセッションの終了時に削除されますが、それらを削除するオプションがあります。一時テーブルを削除するには、TEMPORARYキーワードを使用する必要があります。ベストプラクティスでは、一時テーブルを非一時テーブルの前に削除することをお勧めします。

mysql> DROP TABLE order;