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;