PostgreSQL教程

PostgreSQL TRUNCATE

在本节中,我们将了解 PostgreSQL TRUNCATE TABLE 命令如何从大型表中快速删除所有记录的工作。
要删除表中的所有数据,请使用 DELETE命令。当一个表包含很多记录并且也没有用时,在这种情况下,我们将使用 TRUNCATE TABLE 命令从特定表中删除所有记录。
truncate命令的语法
TRUNCATE TABLE命令的基本语法如下:
TRUNCATE TABLE table_name;
[ RESTART IDENTITY | continue IDENTITY ] [ CASCADE | RESTRICT ]
在以上语法中,我们具有以下参数:
参数 说明
CASCADE 此选项会自动截断所有表,其中包含对其他表的外键引用,或者由于CASCADE而添加到集合中的任何表。
RESTART IDENTITY 它反复重新启动被截断表的列所拥有的订单。
CONTINUE IDENTITY 它不会更改订单的值,它是默认选项。
RESTRICT 这也是默认选项,如果其他表包含表的外键引用(命令中未提及),则该选项可以截断。
注意: TRUNCATE TABLE命令从表中删除所有记录而不检查它,它比DELETE命令快。
在 PostgreSQL 中,我们可以通过两种方式执行截断表: PostgreSQL使用pgAdmin截断表 PostgreSQL使用SQL Shell(PSQL

PostgreSQL使用pgAdmin截断表

要使用 pgAdmin 中的 truncate table命令删除表,我们将执行以下步骤:
第1步
打开您的 pgAdmin ,然后进入 对象树转到数据库的位置,移至 方案下的 public 部分,然后选择所需的特定表 (student_info)截断
数据库→lidihuo→Schema→public→表→student_info
PostgreSQL TRUNCATE TABLE
第2步
然后,我们将右键单击所选的(student_info)表,并单击"截断"选项,然后从给定的下拉列表中再次选择"截断"选项,如下面的屏幕截图所示:
PostgreSQL TRUNCATE TABLE
步骤3
截断表弹出窗口将出现在屏幕上,我们将点击 OK 按钮以截断 student_info 表。
PostgreSQL TRUNCATE TABLE
第4步
一旦单击 OK 按钮,该表将被删除自动,如下面的屏幕截图所示, 部分中没有可用的表。
PostgreSQL TRUNCATE TABLE

PostgreSQL使用SQL Shell(PSQL)截断表

使用 truncate table命令删除表 psql 中,我们将执行以下步骤:
步骤1
打开 SQL shell(psql),其中显示了 必要的详细信息。之后,我们将使用在PostgreSQL的安装过程中创建的 密码登录到Postgres数据库服务器。
我们已连接到我们在下面的屏幕快照中看到了 Postgres服务器:
PostgreSQL截断表
第2步
现在,我们将使用以下命令连接到我们先前创建的特定数据库服务器,即 lidihuo 。 :
\c lidihuo   
PostgreSQL TRUNCATE TABLE
第3步
最后,我们将执行truncate table命令以删除特定表。

psql中PostgreSQL截断表的示例

要了解PostgreSQL截断表在实际环境中的工作,时间,我们将看到以下示例:
删除一个表中的所有数据
在下面的示例中,要删除 student_information 表,我们使用TRUNCATE TABLE命令:
truncate table student_information;
输出
执行上述命令后,我们将获得以下输出,表示 student_information 表数据已成功删除。
PostgreSQL TRUNCATE TABLE
以下命令用于重置借助 RESTART IDENTITY 选项
在特定列中输入值:
TRUNCATE TABLE table_name 
RESTART IDENTITY;
让我们看一个 示例示例,在这里我们尝试重置特定列的值。
以下命令从 student_information 表,并返回与 stu_name 列相关的顺序:
TRUNCATE TABLE student_information 
RESTART IDENTITY;
输出
执行上述命令后,我们将获得以下输出,该输出表示 student_information 表记录已成功删除
PostgreSQL TRUNCATE TABLE
基本上,以上命令不会重新启动与 student_information 表中的列相关的顺序,因为 Truncate table 命令默认使用 CONTINUE IDENTITY 选项。
删除多个表中的所有记录
如果要同时截断一个或多个表中的所有记录,我们可以在 逗号(,)的帮助下将每个表分开。
语法
以下语法用于 删除来自多个表的所有数据:
TRUNCATE TABLE table_name1, table_name2 ...;
例如
以下命令用于删除 个人 department 表格:
TRUNCATE TABLE persons, department;
输出
执行上述命令后,我们将获得以下输出,其中显示 人员和department 表数据已成功删除。
PostgreSQL TRUNCATE TABLE

删除具有外键引用的表中的所有记录

如果我们需要频繁截断包含其他表的外键引用的表,而该表未在TRUNCATE TABLE命令中列出。
默认情况下, TRUNCATE TABLE 命令不会从具有外键引用的表中删除任何记录。
因此,在这种情况下,我们将使用 TRUNCATE TABLE 命令中的CASCADE 选项可用于删除表和其他表中的记录,其中包含外键引用。
语法 >
删除的基本语法带有外键引用的表中的所有记录如下:
TRUNCATE TABLE table_name 
CASCADE;
例如
在以下示例中,我们将从 employee 表和其他表中删除数据通过外键约束引用 persons 表的人:
TRUNCATE TABLE employee CASCADE;
输出
执行上述命令后,我们将获得以下输出,其中 employee 表数据已成功删除。
PostgreSQL TRUNCATE TABLE
CASCADE选项带有附加思想,或者如果我们想从不需要的表中删除记录。
TRUNCATE TABLE 命令使用 RESTRICT 该选项可避免我们截断该表,该表默认情况下具有外键约束引用。

PostgreSQL截断表和事务

如果我们在其中使用了truncate table命令事务,我们可以安全地回滚它,因为它是事务安全的。

PostgreSQL TRUNCATE TABLE和ON DELETE触发器

如果将触发器应用于TRUNCATE对于一个表使用的TABLE命令,我们必须指定Truncate/Afte之前r截断该特定表的触发器。
TRUNCATE TABLE 命令删除表中的所有记录,并且在删除触发器时不使用任何与表格链接的选项。

概述

要从大表中删除所有记录,我们可以使用 TRUNCATE TABLE 命令。 如果一个表通过外键约束引用另一个表,我们可以使用 CASCADE选项截断一个表和其他表。 truncate table命令使用 truncate之前/之后触发器,而不是使用 Delete触发器
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4