第 55.1 节:创建临时表

临时表对于保存临时数据非常有用。MySQL 从 3.23 版本开始支持临时表。

当会话结束或连接关闭时,临时表会自动销毁。用户也可以手动删除临时表。

可以在多个连接中同时使用相同的临时表名,因为临时表仅对创建它的客户端可用且可访问。

临时表可以通过以下方式创建:

基本的临时表创建:

CREATE TEMPORARY TABLE tempTable1 (
    id INT NOT NULL AUTO_INCREMENT,
    title VARCHAR(100) NOT NULL,
    PRIMARY KEY (id)
);

从 SELECT 查询创建临时表:

CREATE TEMPORARY TABLE tempTable1 SELECT ColumnName1, ColumnName2, ... FROM table1;

可以在建表时添加索引:

CREATE TEMPORARY TABLE tempTable1 (
    PRIMARY KEY (ColumnName2)
) SELECT ColumnName1, ColumnName2, ... FROM table1;

可以使用 IF NOT EXISTS 关键字来避免“表已存在”错误。但如果当前会话中已存在该表名,则不会创建表。

CREATE TEMPORARY TABLE IF NOT EXISTS tempTable1 SELECT ColumnName1, ColumnName2, ... FROM table1;

第 55.2 节:删除临时表

DROP TEMPORARY TABLE 用于删除在当前会话中创建的临时表。

DROP TEMPORARY TABLE tempTable1;
DROP TEMPORARY TABLE IF EXISTS tempTable1;

使用 IF EXISTS 可以防止表不存在时引发错误。