Mariadb-temporary-tables
提供:Dev Guides
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句を使用して、既存のテーブルのクローンを作成できます。つまり、それらのすべての一般的な特性を意味します。 一時テーブルの生成に使用されるCREATE TABLEステートメントは、TEMPORARYキーワードの結果としてトランザクションをコミットしません。
一時的なテーブルは一時的でないものとは区別され、セッションの終了時にドロップしますが、特定の競合が発生する場合があります-
- 期限切れセッションのゴースト一時テーブルと競合する場合があります。
- 一時テーブル以外のシャドウ名と競合する場合があります。
注-一時テーブルは、MariaDBが差分参照と見なすため、既存の非一時テーブルと同じ名前を持つことができます。
管理
MariaDBでは、一時テーブルを作成するためにユーザーに特権を付与する必要があります。 GRANTステートメントを使用して、管理者以外のユーザーにこの特権を付与します。
GRANT CREATE TEMPORARY TABLES ON orders TO 'machine122'@'localhost';
一時テーブルを削除する
一時テーブルはセッションの終了時に本質的に削除されますが、それらを削除するオプションがあります。 一時テーブルを削除するには、TEMPORARYキーワードを使用する必要があります。ベストプラクティスでは、一時テーブルを一時テーブルの前に削除することをお勧めします。
mysql> DROP TABLE order;