PostgreSQL 临时表17 Mar 2025 | 4 分钟阅读 在本节中,我们将了解 PostgreSQL 临时表 的工作原理以及如何创建和删除它。 如何创建 PostgreSQL 临时表临时表是一个短暂的表;顾名思义,它只在数据库会话期间存在。 PostgreSQL 会在操作或会话结束时自动删除临时表。 ![]() 在这里,我们将使用 CREATE TEMPORARY TABLE 命令来创建临时表。 语法 以下语法用于在 PostgreSQL 中创建临时表 或 除了在上面的语法中使用 TEMPORARY 关键字之外,我们还可以使用 TEMP 关键字。 PostgreSQL 临时表的示例让我们看一些例子来了解临时表在实际中的工作方式。 在这里,我们正在 SQL shell (psql) 中创建一个 temp 表。 因此,为此,我们将遵循以下过程 首先,使用 psql 登录到 PostgreSQL 数据库服务器,并借助以下命令创建一个名为 Jtp 的新数据库 输出 执行上述命令后,我们将得到以下输出,该输出显示已成功创建 jtp 数据库。 ![]() 要查看之前创建的所有数据库的列表,我们将输入以下命令 输出 实现上述命令后,我们得到以下结果 ![]() 要连接到数据库,我们将输入以下命令 输出 执行上述命令后,我们得到以下结果 ![]() 创建新数据库后,我们将借助以下命令创建一个名为 jti1 的临时表 输出 一旦我们实现了上述命令,我们将获得以下结果 ![]() 之后,我们将使用 SELECT 命令选择 jti1 表,如下所示 输出 执行上述命令后,我们将获得以下结果 ![]() 然后,我们将关闭上述会话,并启动另一个连接到 jtp 数据库的会话,并从 jti1 表中查询数据,如以下命令所示 输出 执行上述命令后,我们将获得以下结果 ![]() 正如我们所看到的,在这个会话中,我们看不到 jti1 表,因为只有第一个会话可以访问它。 然后我们将借助以下命令退出所有会话 输出 执行上述命令后,我们必须按任意键才能退出 psql 窗口 ![]() 之后,我们将再次登录到数据库服务器并从 jti1 表中获取数据 输出 执行上述命令后,我们将得到以下输出,其中 PostgreSQL 报错,因为 jti1 表不存在。 并且当会话结束时,它会自动删除。 ![]() PostgreSQL 临时表名称临时表可以与永久表共享相同的名称,尽管这不是强制性的。或者,如果我们创建的 临时表 与 永久表 具有相同的名称,则在删除临时表之前,我们无法检索永久表。 例如 在这里,首先我们将借助以下命令创建一个名为 的表 输出 实现上述命令后,我们将得到以下消息窗口; fruits 表已成功创建。 ![]() 之后,我们将创建一个 临时 表,其名称与 fruits 相似。 输出 正如我们从下图中看到的那样,临时表 fruits 已成功创建。 ![]() 成功创建两个表后,我们将使用 SELECT 命令 从 fruits 表中选择 记录 输出 执行上述命令后,我们将得到以下结果,在其中我们可以看到 PostgreSQL 检索了 临时 表 fruits 而不是 永久 表。 ![]() 当显式删除临时表 fruits 时,我们只能在现有会话中拥有永久 fruits 表。 注意:我们可能无法在 CREATE TEMP TABLE 命令中定义模式,因为 PostgreSQL 在特定模式中创建临时表。如果我们在 Jtp 数据库中 列出表,我们将仅使用以下命令看到临时表 fruits,而不是永久表 输出 正如我们在下面的结果中看到的那样,fruits 临时表的模式是 pg_temp_3。 ![]() 如何删除 PostgreSQL 临时表在这里,我们借助 Drop table 命令删除临时表。 删除 PostgreSQL 临时表的语法 以下语法用于在 PostgreSQL 中删除临时表 与 CREATE TABLE 命令相比,DROP TABLE 命令 并没有为 临时表 精确定义 TEMP 或 TEMPORARY 关键字的概念。 让我们看一个 示例 来了解删除临时表的工作原理。 在这里,我们将使用以下命令删除我们在上述示例中创建的临时表 fruits 输出 执行上述命令后,我们将得到以下消息: fruits 表已成功删除。 ![]() 如果再次使用以下命令在 jtp 数据库中 列出表 输出 实现上述命令后,它将在此特定列表中显示永久表 fruits ![]() 概述
下一主题PostgreSQL 列别名 |
我们请求您订阅我们的新闻通讯以获取最新更新。