MariaDB – 临时表
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 子句克隆现有表,这意味着它们的所有一般特征。由于 TEMPORARY 关键字,用于生成临时表的 CREATE TABLE 语句不会提交事务。
尽管临时表与非临时表分开并在会话结束时删除,但它们可能存在某些冲突 –
-
它们有时会与过期会话中的幽灵临时表发生冲突。
-
它们有时会与非临时表的影子名称冲突。
注意– 允许临时表与现有的非临时表具有相同的名称,因为 MariaDB 将其视为差异参考。
行政
MariaDB 需要授予用户创建临时表的权限。使用 GRANT 语句将此权限授予非管理员用户。
GRANT CREATE TEMPORARY TABLES ON orders TO 'machine122'@'localhost';
删除临时表
虽然临时表在会话结束时基本上被删除,但您可以选择删除它们。删除临时表需要使用 TEMPORARY 关键字,最佳实践建议在删除任何非临时表之前删除临时表。
mysql> DROP TABLE order;