DELETE语法用于按行删除宽表中的数据或删除时序表中指定条件下的时间线。
引擎与版本
语法
delete_statement ::= DELETE FROM table_identifier
WHERE where_clause
where_clause ::= relation ( ( AND | OR ) relation )*
relation ::= ( column_identifier ) operator term
operator ::= '=' | '!=' | IN | CONTAINS | CONTAINS KEY
使用说明
重要
DELETE操作是一项高风险操作,为了确保数据安全,Lindorm对DELETE的语义做了限制。只能使用完整的主键来删除一行数据,不支持一次性删除多行数据。
删除操作并非是先读取再删除,而是直接写入删除标记。所以无论被删除的行是否存在,删除都会成功。
使用UPSERT写入数据时如果通过HINT将未来时间戳作为数据的版本 ,那么执行DELETE时,即使DELETE语句执行成功,未来时间戳的数据也并不会被真正删除。详细介绍,请参见多版本数据管理。
删除条件(where_clause)
宽表引擎和时序引擎均支持指定删除条件(where_clause),且where_clause必须唯一限定一行数据。
关系表达式(relation)
使用DELETE语法在时序表中删除时间线时,指定的column_identifier必须是VARCHAR列(标签列)。
示例
DELETE FROM sensor WHERE p1 = 10 AND p2 = 20;
反馈
- 本页导读 (1)