SQL 基础教程
SQL 连接
SQL 高级教程
SQL 参考资料

SQL 临时表

在本教程中,您将学习如何使用 SQL 创建临时表。

创建临时表

临时表是仅对当前会话可见的表,并在创建它的会话关闭时自动删除。

由于临时表不会永久存储在数据库中,因此,在您只需要一个表在短时间内执行或测试某事,然后您希望它自动消失的情况下,它会很有用。

语法

CREATE TEMPORARY TABLE 语句用于创建临时表。

CREATE TEMPORARY TABLE table_name (column definitions);

如果要从头开始创建临时表,可以在创建表时使用 TEMPORARY 关键字,即使用 CREATE TEMPORARY TABLE 而不是 CREATE TABLE 语句。 有关完整的语法和示例,请参见 create table 章节。


创建现有表的临时副本

临时表在您只想测试 SQL 查询而不影响数据库的情况下很有用。 让我们在 MySQL database 中创建一个现有表的临时副本。

在 MySQL 命令提示符下键入以下命令,然后按 enter:

mysql> CREATE TEMPORARY TABLE persons SELECT * FROM persons;

上述语句从现有基表 persons 的结果集中动态创建一个名为 persons 的临时表。 另外,由于它是persons表的临时副本,因此您可以像INSERT, UPDATE or DELETE一样进行任何操作,而不必担心误影响原始persons基表。

提示:临时表可以与永久基表同名。 如果您指定的临时表的名称与现有基表相同,则永久基表将被隐藏,直到临时表被删除。

注意:由于临时表是特定于会话的,因此两个不同的会话可以使用相同的临时表名称而不会相互冲突。


删除临时表

当创建临时表的数据库连接或会话关闭时,临时表会自动删除。 但是,如果想在不关闭当前会话的情况下删除它们,可以使用 DROP TEMPORARY TABLE 语句,如下所示:

mysql> DROP TEMPORARY TABLE persons;

上述语句将从数据库中删除临时表persons。 之后,原始的 persons 基表变得可见。

Advertisements