Mysql 简明教程
MySQL - Temporary Tables
What are Temporary Tables?
Temporary Tables 表是在数据库中创建的,用于暂时存储数据。一旦当前的客户端会话被终止或结束,这些表将会被自动删除。此外,如果用户决定手动删除,这些表也可以被明确删除。你可以对临时表执行各种 SQL 操作,就像永久表一样,包括 CREATE、UPDATE、DELETE、INSERT、JOIN 等。
临时表是在 MySQL 3.23 版中引进的。如果你使用的是比 3.23 旧的 MySQL 旧版本,你将不能使用临时表,而必须用 Heap Tables 代替。
如前所述,临时表只会持续到会话结束为止。如果您在 PHP 脚本中运行代码,那么临时表将在脚本执行完毕后自动销毁。如果您通过 MySQL 客户端程序连接到 MySQL 数据库服务器,那么该临时表将一直存在到您关闭客户端或手动销毁表为止。
Creating Temporary Tables in MySQL
在 MySQL 中创建临时表非常类似于创建常规数据库表。但是,我们使用 CREATE TEMPORARY TABLE 语句来代替使用 CREATE TABLE。
Syntax
以下是在 MySQL 中创建临时表的语法:
CREATE TEMPORARY TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY( one or more columns )
);
Example
首先,让我们用下列查询来创建一个名为 CUSTOMERS 的临时表:
CREATE TEMPORARY TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25) ,
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
类似于正常表,我们可以使用 INSERT 语句来向临时表插入记录。我们这里向上面创建的临时表中插入 3 条记录:
INSERT INTO CUSTOMERS VALUES
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'kaushik', 23, 'Kota', 2000.00 );
执行以下查询来显示临时表 CUSTOMERS 中的所有记录。
SELECT * FROM CUSTOMERS;
以下是 CUSTOMERS 表的记录:
当我们发布一则 SHOW TABLES 指令时,我们的临时表不会被显示在表中。若要验证临时表是否存在,我们需要使用 SELECT 语句取得其数据。我们结束会话时,临时表将被删除,因此如果我们退出登录 MySQL 并尝试发布 SELECT 指令,我们不会在数据库中看到临时表。