MariaDB 臨時(shí)表

2022-08-16 15:33 更新

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

創(chuàng)建臨時(shí)表

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

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)建臨時(shí)表時(shí),可以使用LIKE子句克隆現(xiàn)有表,這意味著其所有常規(guī)特征。 用于生成臨時(shí)表的CREATE TABLE語(yǔ)句不會(huì)作為TEMPORARY關(guān)鍵字的結(jié)果提交事務(wù)。

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

  • 他們有時(shí)會(huì)與過(guò)期會(huì)話中的ghost臨時(shí)表沖突。

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

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

行政

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

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

刪除臨時(shí)表

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

mysql> DROP TABLE order;

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)