更新时间:2025-09-18 GMT+08:00
DELETE
功能描述
从指定的表里删除满足WHERE子句的行。如果WHERE子句不存在,将删除表中所有行,结果只保留表结构。

目前仅Iceberg表支持Delete。
注意事项
要删除表中的数据,用户必须对它有DELETE权限。同样也必须有USING子句引用的表以及condition上读取的表的SELECT权限。

避免使用DELETE删除全表数据,考虑使用TRUNCATE TABLE代替。
语法格式
DELETE FROM table_name [ * ] [ [ AS ] alias ] [ USING using_list ] [ WHERE condition ]
参数说明
- table_name:目标表的名字。取值范围:已存在的表名。
- alias:目标表的别名。取值范围:字符串,符合标识符命名规范。
- using_list:using子句。
- condition:一个返回boolean值的表达式,用于判断哪些行需要被删除。
示例
创建表reason_t2:
CREATE TABLE reason_t2 ( TABLE_SK INTEGER , TABLE_ID VARCHAR(20) , TABLE_NA VARCHAR(20) ) STORE AS iceberg; INSERT INTO reason_t2 VALUES (1, 'S01', 'StudentA'),(2, 'T01', 'TeacherA'),(3, 'T02', 'TeacherB');
使用WHERE条件删除:
DELETE FROM reason_t2 WHERE TABLE_SK = 2; DELETE FROM reason_t2 AS rt2 WHERE rt2.TABLE_SK = 2;
使用IN语法删除:
DELETE FROM reason_t2 WHERE TABLE_SK in (1,3);
父主题: DML语法