时间:2021-07-01 10:21:17 帮助过:20人阅读
在influxdb中没有专门的修改数据的update
语句,对于influxdb而言,如果想修改数据,还是得使用我们前面的说到的insert
来实现,那么怎么判断一条insert语句是插入还是修改呢?
关于insert的使用语法,可以参考上一篇博文:190726-Influx Sql系列教程五:insert 添加数据
这里只是贴一下基本语法
insert into <retention policy> measurement,tagKey=tagValue fieldKey=fieldValue timestamp
如果我们希望修改一条数据,比如修改既有的field,或者增加/删除field时,我们需要指定具体的时间戳和tag
下面是一个简单的修改演示
> select * from add_test where time=1564149327925320596
name: add_test
time age boy email name phone user_id
---- --- --- ----- ---- ----- -------
1564149327925320596 bangzewu@126.com YiHui 110 20
> show tag keys from add_test
name: add_test
tagKey
------
name
phone
> insert add_test,name=YiHui,phone=110 user_id=20,email="bangzewu@126.com",boy=true,age=18i 1564149327925320596
> select * from add_test where time=1564149327925320596
name: add_test
time age boy email name phone user_id
---- --- --- ----- ---- ----- -------
1564149327925320596 18 true bangzewu@126.com YiHui 110 20
在上面的case中,我们执行的的insert语句来修改某条已有的记录时,有几个参数必须存在
name=YiHui,phone=110
然后field的内容,会增量修改之前的数据,如下
> insert add_test,name=YiHui,phone=110 boy=true,age=19i 1564149327925320596
> select * from add_test where time=1564149327925320596
name: add_test
time age boy email name phone user_id
---- --- --- ----- ---- ----- -------
1564149327925320596 19 true bangzewu@126.com YiHui 110 20
通过上面的insert,可以动态新增field,但是如果我希望删除field怎么办?
influxdb sql
中没有找到删除field的方式,一个可供选择的方式就是把原来的记录删掉;然后再重新插入一条如果需要修改tag怎么办?
insert
语句而言就是新增了一个point;这个时候可以考虑由自己来删除旧的数据参考博文
一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛
尽信书则不如,已上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
一灰灰blog
Influx Sql系列教程六:insert 修改数据
标签:格式 sar 指正 ret https blog 日期格 log mes