如何在CnosDB中更新数据?UPDATE语句执行失败求助
在CnosDB中修改时序数据的方法
CnosDB作为时序数据库,不支持标准SQL的UPDATE语句,这是由时序数据的设计特性决定的——时序数据通常以追加方式写入,历史数据一般保持不可变性,因此官方未提供UPDATE相关语法。
要修改已写入的数据,可通过「删除旧数据+插入新数据」的方式实现,具体步骤如下:
- 删除目标历史数据
执行DELETE语句移除需要修改的记录:
DELETE FROM test WHERE time = timestamp '1970-01-01T00:00:00.000000001' AND ta = 'ta';
- 插入修改后的新数据
将更新后的内容以原时间戳插入表中:
INSERT INTO test(ta, fa, time) VALUES ('test_ta', 1, timestamp '1970-01-01T00:00:00.000000001');
执行完成后,再次查询即可看到修改后的结果:
SELECT * FROM test;
注意:频繁修改历史数据会影响时序数据库的性能,建议在设计阶段尽量保证数据写入的准确性,避免不必要的历史数据修改操作。
内容的提问来源于stack exchange,提问作者ZuoTiJia
相关产品推荐
相关产品推荐

