PostgreSQL 临时表


PostgreSQL 临时表

在本节中,我们将了解PostgreSQL 临时表的工作以及如何创建和删除它。

如何创建 PostgreSQL 临时表

临时表是一个简短的表;它的名字意味着;它在数据库会话时出现。PostgreSQL 在操作或会话结束时自动删除临时表。

PostgreSQL 临时表

在这里,我们将使用CREATE TEMPORARY TABLE命令来创建临时表。

句法

以下语法用于在PostgreSQL 中创建临时表:

  1. 创建临时表 temp_table_name(...);

或者

除了在上述语法中使用TEMPORARY关键字,我们还可以使用TEMP关键字。

  1. 创建临时表 temp_table_Name(...);

PostgreSQL 临时表示例

让我们看一些例子来实时了解临时表的工作。

在这里,我们在SQL shell (psql)中创建一个临时表。因此,为此,我们将遵循以下流程:

首先,使用psql登录到 PostgreSQL 数据库服务器,并在以下命令的帮助下创建一个新的数据库作为Jtp\

CREATE DATABASE jtp;

输出

执行上述命令后,我们将得到以下输出,表示jtp\数据库已成功创建。

PostgreSQL 临时表

要查看之前创建的所有数据库的列表,我们将输入以下命令:

\l

输出

执行上述命令后,我们得到以下结果:

PostgreSQL 临时表

要连接到数据库,我们将输入以下命令:

\c jtp

输出

执行上述命令后,我们得到以下结果:

PostgreSQL 临时表

一旦我们创建了一个新数据库,我们将在以下命令的帮助下创建一个名为jti1\的临时表:

jtp=# create temp table jti1(name varchar);

输出

一旦我们执行了上面的命令,我们将得到以下结果:

PostgreSQL 临时表

之后,我们将使用 SELECT 命令选择jti1\表,如下所示:

jtp=# select * from jti1;

输出

执行上述命令后,我们将得到以下结果:

PostgreSQL 临时表

然后,我们将关闭上述会话并启动另一个连接到jtp\数据库的会话,并从jti1\表中查询数据,如下面的命令所示:

jtp=# select * from jti1;

输出

执行上述命令后,我们将得到以下结果:

PostgreSQL 临时表

正如我们看到的,在这个会话中,我们看不到jti1\表,因为只有第一个会话可以访问它。

然后我们将在以下命令的帮助下退出所有会话:

jtp=# \q

输出

一旦我们执行了上面的命令,我们必须按任意键退出 psql 窗口:

PostgreSQL 临时表

之后,我们将再次登录数据库服务器,从jti1表中获取数据:

test=# SELECT * FROM jti1;

输出

执行上述命令后,我们将得到以下输出,其中 PostgreSQL 发出错误,因为jti1\表不存在。当会话结束时,它会自动删除。

PostgreSQL 临时表

PostgreSQL 临时表名

临时表可以与永久表共享相似的名称,但这不是强制性的。或者,如果我们创建了一个临时表具有类似名称为永久表,我们不能直到临时表被删除检索永久表。

例如

在这里,首先我们将创建一个在以下命令的帮助下命名的表:

Jtp=# CREATE TABLE fruits (fruits_name  VARCHAR PRIMARY KEY,  fruits_season VARCHAR NOT NU

输出

一旦我们执行了上面的命令,我们将得到下面的消息窗口;该成果\表已成功创建。

PostgreSQL 临时表

在那之后,我们将创建一个临时的具有类似名称表水果\

jtp=# create temporary table fruits ( fruits_name varchar);

输出

如下图所示,临时表fruits\已经创建成功。

PostgreSQL 临时表

成功创建两个表后,我们将使用SELECT 命令从Fruits\表中选择记录\

jtp=# select * from fruits;

输出

执行上述命令后,我们将得到以下结果,我们可以看到 PostgreSQL 检索了临时Fruits\而不是永久表。

PostgreSQL 临时表

当临时表fruits\被显式删除时,我们只能在现有会话中拥有永久的fruits\表。

注意:我们可能不会在 CREATE TEMP TABLE 命令中定义模式,因为 PostgreSQL 在特定模式中创建临时表。

如果我们列出的表JTP\数据库,我们将只能看到临时表的水果,而不是永久的使用下面的命令:

jtp=# \dt

输出

正如我们在下面的结果中看到的,fruits临时表的架构是pg_temp_3

PostgreSQL 临时表

如何删除 PostgreSQL 临时表

在这里,我们在Drop table命令的帮助下删除临时表。

删除 PostgreSQL 临时表的语法

以下语法用于删除 PostgreSQL 中的临时表:

DROP TABLE temp_table_name;

CREATE TABLE命令相比,DROP TABLE 命令没有专门用于临时表TEMP 或 TEMPORARY关键字概念。

让我们看一个例子来理解删除临时表的工作。

在这里,我们将使用以下命令删除在上面的示例中创建的临时表Fruits\

jtp=# drop table fruits;

输出

执行上述命令后,我们将得到以下消息:fruits\ table 已成功删除。

PostgreSQL 临时表

如果我们列出的表JTP数据库再次通过使用下面的命令:

jtp=# \d

输出

一旦我们执行了上面的命令,它将在该特定列表中显示永久表水果\

PostgreSQL 临时表

概述

  • 我们已经了解了临时表
  • 我们在CREATE TEMP TABLE命令的帮助下创建一个临时临时文件。
  • 删除临时表,我们使用DROP TABLE命令。