44 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| ---
 | ||
| sidebar_label: 删除数据
 | ||
| description: "删除指定表或超级表中的数据记录"
 | ||
| title: "删除数据"
 | ||
| ---
 | ||
| 
 | ||
| 删除数据是 TDengine 提供的根据指定时间段删除指定表或超级表中数据记录的功能,方便用户清理由于设备故障等原因产生的异常数据。
 | ||
| 
 | ||
| **注意**:删除数据并不会立即释放该表所占用的磁盘空间,而是把该表的数据标记为已删除,在查询时这些数据将不会再出现,但释放磁盘空间会延迟到系统自动或用户手动进行数据重整时。
 | ||
| 
 | ||
| **语法:**
 | ||
| 
 | ||
| ```sql
 | ||
| DELETE FROM [ db_name. ] tb_name [WHERE condition];
 | ||
| ```
 | ||
| 
 | ||
| **功能:** 删除指定表或超级表中的数据记录
 | ||
| 
 | ||
| **参数:**
 | ||
| 
 | ||
| - `db_name` : 可选参数,指定要删除表所在的数据库名,不填写则在当前数据库中
 | ||
| - `tb_name` : 必填参数,指定要删除数据的表名,可以是普通表、子表,也可以是超级表。
 | ||
| - `condition`: 可选参数,指定删除数据的过滤条件,不指定过滤条件则为表中所有数据,请慎重使用。特别说明,这里的 where 条件中只支持对第一列时间列的过滤。
 | ||
| 
 | ||
| **特别说明:**
 | ||
| 
 | ||
| 数据删除后不可恢复,请慎重使用。为了确保删除的数据确实是自己要删除的,建议可以先使用 `select` 语句加 `where` 后的删除条件查看要删除的数据内容,确认无误后再执行 `delete` 命令。
 | ||
| 
 | ||
| **示例:**
 | ||
| 
 | ||
| `meters` 是一个超级表,`groupid` 是 int 类型的 tag 列,现在要删除 `meters` 表中时间小于 2021-10-01 10:40:00.100 的所有数据,sql 如下:
 | ||
| 
 | ||
| ```sql
 | ||
| delete from meters where ts < '2021-10-01 10:40:00.100' ;
 | ||
| ```
 | ||
| 
 | ||
| 执行后显示结果为:
 | ||
| 
 | ||
| ```
 | ||
| Deleted 102000 row(s) from 1020 table(s) (0.421950s)
 | ||
| ```
 | ||
| 
 | ||
| 表示从 1020 个子表中共删除了 102000 行数据
 |