跳到主要内容

三十三、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 数据库,我们假设两个终端的名字为 a 和 b

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)