PostgreSQL – 截断表
PostgreSQL 支持 TRUNCATE TABLE 语句来快速删除大表中的所有数据。要从表中删除所有数据,请使用 DELETE 语句。但是,对于大表,使用 TRUNCATE TABLE 语句效率更高。 TRUNCATE TABLE 语句从表中删除所有行而不扫描它。这就是它比 DELETE 语句更快的原因。此外,TRUNCATE TABLE 语句会立即回收存储,因此用户不必执行后续的 VACUUM 操作,这在大表的情况下非常有用。
Syntax: TRUNCATE TABLE table_name;
示例 1:
在我们的数据库中,我们已经有一个包含数据的表animals
。让我们使用以下语句检查它是否有任何数据:
SELECT * FROM animals;
它显示了以下结果:
现在我们将使用以下语句从表中删除所有数据:
TRUNCATE TABLE animals;
现在我们使用以下语句验证删除是否完成:
SELECT * FROM animals;
输出:
示例 2:
在我们的数据库中,我们已经有一个名为galaxy
数据表。让我们使用以下语句检查它是否有任何数据:
SELECT * FROM galaxy;
它显示了以下结果:
现在我们将使用以下语句从表中删除所有数据:
TRUNCATE TABLE galaxy;
现在我们使用以下语句验证删除是否完成:
SELECT * FROM galaxy;
输出: