English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tabella temporanea SQL

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

创建临时表

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

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

语法

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

CREATE TEMPORARY TABLE table_name (column definitions);

如果要从头开始创建临时表,则可以在创建表时使用关键字TEMPORARY,即使用CREATE TEMPORARY TABLE代替CREATE TABLE语句。有关完整的语法和示例,请参见“ 创建表一章。

创建现有表的临时副本

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

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

mysql> CREATE TEMPORARY TABLE persons SELECT * FROM persons;

上面的语句从现有基表persons的结果集中动态创建一个名为persons的临时表。另外,由于它是persons表的临时副本,因此您可以执行INSERT,UPDATEoDELETEe qualsiasi altra operazione, senza preoccuparsi di influenzare erroneamente la tabella di base originale persons.

Suggerimento:Le tabelle temporanee possono avere lo stesso nome delle tabelle di base permanenti. Se il nome della tabella temporanea specificata è lo stesso del nome della tabella di base esistente, la tabella di base permanente verrà nascosta fino a quando non viene eliminata la tabella temporanea.

Attenzione:Poiché le tabelle temporanee sono specifiche della sessione, due sessioni diverse possono utilizzare lo stesso nome di tabella temporanea senza conflitto tra loro.

Eliminazione della tabella temporanea

La tabella temporanea viene eliminata automaticamente quando la connessione o la sessione di creazione viene chiusa. Ma se si desidera eliminarle senza chiudere la sessione corrente, è possibile utilizzare la seguente istruzione DROP TEMPORARY TABLE:

mysql> DROP TEMPORARY TABLE persons;

La seguente istruzione verràpersonsElimina la tabella temporanea dal database. Dopo di che, ilpersonsLa tabella di base diventerà visibile.