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;