第 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 可以防止表不存在时引发错误。