跳到主要内容

三十三、CREATE TEMPORARY TABLE 创建临时表

MySQL 临时表用于一些临时数据时是非常有用的

临时表只在当前连接可见,当关闭连接时,MySQL 会自动删除表并释放所有空间

因为MySQL 临时表只在当前连接可见,如果使用 PHP 脚本来创建 MySQL 临时表,那每当 PHP 脚本执行完成后,该临时表也会自动销毁

如果连接到 MySQL 使用持久性连接,那么只有在关闭客户端程序时才会销毁临时表,当然也可以手动销毁

创建临时表

命令CREATE TEMPORARY TABLE tablename 命令用来创建临时表

创建临时表的语法和 CREATE TABLE tablename 是一样的,只是多了一个 TEMPORARY 关键字

例如下面的语句用于创建一个临时表 tbl_language_temp

CREATE TEMPORARY TABLE IF NOT EXISTS tbl_language_tmp(
id INT UNSIGNED AUTO_INCREMENT,
name VARCHAR(64) NOT NULL,
url VARCHAR(128) NOT NULL,
founded_at DATE,
PRIMARY KEY ( id )
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

为了演示如何创建临时表和临时表的特性,我们需要打开两个终端,连接登录到 MySQL 服务,然后切换到 souyunku 数据库,我们假设两个终端的名字为 ab

1、 分别在a和b终端下使用SHOWTABLES;命令查看当前数据库有多少表;

a 终端
    MariaDB [souyunku]> SHOW TABLES;
+----------------+
| Tables_in_souyunku |
+----------------+
| tbl_language |
+----------------+
1 row in set (0.01 sec)
b 终端
    MariaDB [souyunku]> SHOW TABLES;
+----------------+
| Tables_in_souyunku |
+----------------+
| tbl_language |
+----------------+
1 row in set (0.01 sec)