更新时间:2025-09-17 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);

相关文档