提要:通过本教程,你将学到如何使用 PostgreSQL 的 DELETE 来删除数据表中的数据

PostgreSQL DELETE 简介

使用 DELETE 来删除数据表中的数据:

DELETE FROM table
WHERE condition

首先,在 DELETE FROM 子句指定要从哪个表里删除数据。

然后,使用 WHERE 来指定要删除哪些数据。如果省略了 WHERE,将把数据表中所有的数据都删除!

DELETE 将返回被删除的行数。如果没有行被删除,将返回零。

如果要检查和其它表的关联,可以使用 USING

DELETE FROM table
USING another_table
WHERE table.id = another_table.id AND 

使用子查询,也能达到相同的目的:

DELETE FROM table
WHERE table.id = (SELECT id FROM another_table);

PostgreSQL DELETE 示例

我们将使用 linklink_temp 作演示。

首先,看下 link 表里的数据:

DELETE

删除指定的数据

使用下面的语句删除 id 为 6 的数据:

DELETE FROM link
WHERE id = 6;

DELETE USING 示例

如果要删除 link 中,在 link_temp 也有对应数据的记录,使用下面的语句:

DELETE
FROM
 link USING link_tmp
WHERE
 link.id = link_tmp.id;

删除所有数据

下面的语句将删除 link 表中所有数据:

DELETE
FROM
 link;

此时,link 表为空。

可以在删除的同时返回被删除的记录:

DELETE
FROM
 link RETURNING *;
上一篇:PostgreSQL的UPSERT