MariaDB 臨時表

2022-08-16 15:33 更新

由于速度或一次性數(shù)據(jù),一些操作可能受益于臨時表。 臨時表的生命期在會話終止時結(jié)束,無論是從命令提示符,PHP腳本還是通過客戶端程序使用它們。 它也不以典型的方式出現(xiàn)在系統(tǒng)中。 SHOW TABLES命令不會顯示包含臨時表的列表。

創(chuàng)建臨時表

CREATE TABLE語句中的TEMPORARY關(guān)鍵字生成臨時表。 查看下面給出的示例 -

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
);

在創(chuàng)建臨時表時,可以使用LIKE子句克隆現(xiàn)有表,這意味著其所有常規(guī)特征。 用于生成臨時表的CREATE TABLE語句不會作為TEMPORARY關(guān)鍵字的結(jié)果提交事務。

雖然臨時表在會話結(jié)束時與非臨時表脫離,但它們可能有一定的沖突 - 

  • 他們有時會與過期會話中的ghost臨時表沖突。

  • 它們有時與非臨時表的影子名稱沖突。

注意 - 臨時表允許與現(xiàn)有非臨時表具有相同的名稱,因為MariaDB將其視為差異引用。

行政

MariaDB需要向用戶授予創(chuàng)建臨時表的權(quán)限。 使用GRANT語句將此權(quán)限授予非管理員用戶。

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

刪除臨時表

雖然臨時表基本上在會話結(jié)束時刪除,您可以選擇刪除它們。 刪除臨時表需要使用TEMPORARY關(guān)鍵字,最佳實踐建議在臨時表之前刪除臨時表。

mysql> DROP TABLE order;

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號