Postgresql 简明教程

PostgreSQL - TRUNCATE TABLE Command

PostgreSQL TRUNCATE TABLE 命令用于从现有表中删除完整数据。您还可以使用 DROP TABLE 命令删除完整表,但它会从数据库中删除完整表结构,如果您希望存储一些数据,您需要再次重新创建此表。

The PostgreSQL TRUNCATE TABLE command is used to delete complete data from an existing table. You can also use DROP TABLE command to delete complete table but it would remove complete table structure from the database and you would need to re-create this table once again if you wish to store some data.

它对每张表的效果与 DELETE 相同,但由于它实际上不扫描表,因此速度更快。此外,它立即回收磁盘空间,而不是需要随后的 VACUUM 操作。这在大型表上最有用。

It has the same effect as DELETE on each table, but since it does not actually scan the tables, it is faster. Furthermore, it reclaims disk space immediately, rather than requiring a subsequent VACUUM operation. This is most useful on large tables.

Syntax

TRUNCATE TABLE 的基本语法如下——

The basic syntax of TRUNCATE TABLE is as follows −

TRUNCATE TABLE  table_name;

Example

考虑以下记录的 COMPANY 表——

Consider the COMPANY table has the following records −

 id | name  | age | address    | salary
----+-------+-----+------------+--------
  1 | Paul  |  32 | California |  20000
  2 | Allen |  25 | Texas      |  15000
  3 | Teddy |  23 | Norway     |  20000
  4 | Mark  |  25 | Rich-Mond  |  65000
  5 | David |  27 | Texas      |  85000
  6 | Kim   |  22 | South-Hall |  45000
  7 | James |  24 | Houston    |  10000
(7 rows)

以下是截断的示例——

The following is the example to truncate −

testdb=# TRUNCATE TABLE COMPANY;

现在,COMPANY 表已截断,以下将是 SELECT 语句的输出——

Now, COMPANY table is truncated and the following would be the output of SELECT statement −

testdb=# SELECT * FROM CUSTOMERS;
 id | name | age | address | salary
----+------+-----+---------+--------
(0 rows)