⌘+k ctrl+k
1.4 (LTS)
搜索快捷键 cmd + k | ctrl + k
DELETE 语句

DELETE 语句用于从 table-name 指定的表中删除行。如果未提供 WHERE 子句,则表中的所有记录都将被删除。如果提供了 WHERE 子句,则仅删除那些使 WHERE 子句结果为 true 的行。表达式结果为 false 或 NULL 的行将被保留。

示例

从数据库中删除符合条件 i = 2 的行

DELETE FROM tbl WHERE i = 2;

删除表 tbl 中的所有行

DELETE FROM tbl;

USING 子句

USING 子句允许根据其他表或子查询的内容进行删除操作。

RETURNING 子句

RETURNING 子句允许返回被删除的值。它使用与 SELECT 子句相同的语法,但不支持 DISTINCT 修饰符。

CREATE TABLE employees (name VARCHAR, age INTEGER);
INSERT INTO employees VALUES ('Kat', 32);
DELETE FROM employees RETURNING name, 2025 - age AS approx_birthyear;
name approx_birthyear
Kat 1993

语法

TRUNCATE 语句

TRUNCATE 语句用于从表中删除所有行,其作用相当于没有 WHERE 子句的 DELETE FROM

TRUNCATE tbl;

关于回收内存和磁盘空间的限制

运行 DELETE 并不意味着空间会被立即回收。通常情况下,行仅被标记为已删除。DuckDB 在执行 CHECKPOINT 时会回收空间。VACUUM 目前不会回收空间。

© 2025 DuckDB 基金会,阿姆斯特丹,荷兰
行为准则 商标使用指南