PostgreSQL 临时表
在本节中,我们将了解PostgreSQL 临时表的工作原理以及如何创建和删除它。
如何创建 PostgreSQL 临时表
临时表是一个简短的表;它的名字意味着;它在数据库会话时出现。PostgreSQL 在操作或会话结束时自动删除临时表。
在这里,我们将使用CREATE TEMPORARY TABLE命令来创建临时表。
句法
以下语法用于在PostgreSQL中创建临时表:
CREATE TEMPORARY TABLE temp_table_name(...);
或者
除了在上述语法中使用TEMPORARY关键字,我们还可以使用TEMP关键字。
Create Temp Table temp_table_Name(...);
PostgreSQL 临时表示例
让我们看一些例子来实时了解临时表的工作。
在这里,我们在SQL shell (psql)中创建一个临时表。因此,为此,我们将遵循以下流程:
首先,使用psql登录到 PostgreSQL 数据库服务器,并在以下命令的帮助下创建一个新数据库作为Jtp:
CREATE DATABASE jtp;
执行完上面的命令后,我们会得到下面的输出,说明jtp数据库已经创建成功。
要查看之前创建的所有数据库的列表,我们将输入以下命令:
\l
执行上述命令后,我们得到以下结果:
要连接到数据库,我们将输入以下命令:
\c jtp
执行上述命令后,我们得到以下结果:
创建新数据库后,我们将借助以下命令创建一个名为jti1的临时表:
jtp=# create temp table jti1(name varchar);
执行上述命令后,我们将得到以下结果:
之后,我们将使用 SELECT 命令选择jti1表,如下所示:
jtp=# select * from jti1;
执行上述命令后,我们将得到以下结果:
然后,我们将关闭上面的会话并启动另一个连接到jtp数据库的会话并从jti1表中查询数据,如下面的命令所示:
jtp=# select * from jti1;
执行上述命令后,我们将得到以下结果:
如我们所见,在这个会话中,我们看不到jti1表,因为只有第一个会话可以访问它。
然后我们将在以下命令的帮助下退出所有会话:
jtp=# \q
执行上述命令后,我们必须按任意键退出 psql 窗口:
之后,我们再次登录数据库服务器,从jti1表中获取数据:
test=# SELECT * FROM jti1;
执行上述命令后,我们将得到以下输出,其中 PostgreSQL 发出错误,因为jti1表不存在。当会话结束时,它会自动删除。
PostgreSQL 临时表名
临时表可以与永久表共享相似的名称,但这不是强制性的。或者,如果我们正在创建一个与永久表具有相似名称的临时表,则在删除临时表之前我们无法检索永久表。
例如
在这里,首先我们将在以下命令的帮助下创建一个名为的表:
Jtp=# CREATE TABLE fruits (fruits_name VARCHAR PRIMARY KEY, fruits_season VARCHAR NOT NULL);
执行上述命令后,我们将获得以下消息窗口;fruits 表已成功创建。
之后,我们将创建一个与fruits具有相似名称的临时表。
jtp=# create temporary table fruits ( fruits_name varchar);
如下图所示,临时表fruits已经创建成功。
成功创建两个表后,我们将使用SELECT 命令从fruits表中选择记录:
jtp=# select * from fruits;
执行上述命令后,我们将得到以下结果,我们可以看到 PostgreSQL 检索的是临时表fruits而不是永久表。
当临时表fruits被显式删除时,我们只能在现有会话中拥有永久fruits表。
如果我们列出Jtp数据库中的表,我们将只能看到临时表 fruits,而不是使用以下命令的永久表:
jtp=#\dt
正如我们在下面的结果中看到的那样,水果临时表的模式是pg_temp_3。
如何删除 PostgreSQL 临时表
在这里,我们在Drop table命令的帮助下删除临时表。
删除 PostgreSQL 临时表的语法
以下语法用于删除 PostgreSQL 中的临时表:
DROP TABLE temp_table_name;
与CREATE TABLE命令相比,DROP TABLE 命令没有专门用于临时表的TEMP 或 TEMPORARY关键字概念。
让我们看一个例子来理解删除临时表的工作。
在这里,我们将使用以下命令删除在上述示例中创建的临时表fruits :
jtp=# drop table fruits;
执行完上面的命令后,我们会得到如下信息:fruits表已经被成功删除。
如果我们使用以下命令再次列出jtp数据库中的表:
jtp=# \d
一旦我们执行了上述命令,它将在该特定列表中显示永久表fruits :
总结
- 我们已经了解了临时表。
- 我们在CREATE TEMP TABLE命令的帮助下创建一个临时临时文件。
- 要删除临时表,我们使用DROP TABLE命令。
热门文章
优秀文章