本章将学习如何使用SQL创建临时表。
创建临时表
临时表是仅对当前会话可见的表,并且在创建它的会话关闭时自动删除。
由于临时表不是永久存储在数据库中,当只需要一个用于短时测试的表时,可以用临时表。
语法
CREATE TEMPORARY TABLE
语句用于创建临时表。
CREATE TEMPORARY TABLE table_name (column definitions);
除了加TEMPORARY
关键字,其他与创建普通表的操作一样。
创建表的临时副本
当只想测试SQL查询而不想影响数据库时,临时表非常有用。让我们在MySQL数据库中创建一个现有表的临时副本。
在MySQL命令提示符下执行以下命令:
mysql> CREATE TEMPORARY TABLE persons SELECT * FROM persons;
上面的语句从源表persons的结果集中创建一个名为persons的临时表。由于它是persons表的临时副本,您可以执行任何操作,比如插入、更新或删除,而不必担心影响原表persons。
临时表可以与原表同名。如果临时表原表同名,则原表将被隐藏,直到临时表被删除为止。
由于临时表是绑定会话的,两个不同的会话可以使用相同的临时表名,不会有冲突。
删除临时表
当数据库连接/会话关闭时,会话中的临时表将自动删除。如果想手动删除临时表,可以使用DROP TEMPORARY TABLE
语句,如下所示:
mysql> DROP TEMPORARY TABLE persons;
上述语句将删除临时表persons,删除后,原表person就变得可见了。