当前位置:Gxlcms > 数据库问题 > Influx Sql系列教程六:insert 修改数据

Influx Sql系列教程六:insert 修改数据

时间:2021-07-01 10:21:17 帮助过:20人阅读

在influxdb中没有专门的修改数据的update语句,对于influxdb而言,如果想修改数据,还是得使用我们前面的说到的insert来实现,那么怎么判断一条insert语句是插入还是修改呢?

1. 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语句来修改某条已有的记录时,有几个参数必须存在

  • time: 指定为要要改记录的时间戳
  • tag: 所有的tag都必须和要修改的数据一致 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怎么办?

  • 前面的case已经表明,修改记录是根据 time + tag values来唯一定位记录,然后执行删除的,如果你需要修改一个tag,对insert语句而言就是新增了一个point;这个时候可以考虑由自己来删除旧的数据

II. 其他

0. 系列博文

  • 190726-Influx Sql系列教程五:insert 添加数据
  • 190723-Influx Sql系列教程四:series/point/tag/field
  • 190721-Influx Sql系列教程三:measurement 表
  • 190719-Influx Sql系列教程二:retention policy 保存策略
  • 190718-Influx Sql系列教程一:database 数据库
  • 190717-Influx Sql系列教程零:安装及influx-cli使用姿势介绍
  • 190509-InfluxDb之时间戳显示为日期格式
  • 190506-InfluxDB之配置修改
  • 190505-InfluxDB之权限管理
  • 180727-时序数据库InfluxDB之备份和恢复策略
  • 180726-InfluxDB基本概念小结
  • 180725-InfluxDB-v1.6.0安装和简单使用小结

参考博文

  • https://docs.influxdata.com/influxdb/v1.7/concepts/glossary
  • https://docs.influxdata.com/influxdb/v1.7/query_language/schema_exploration
  • https://docs.influxdata.com/influxdb/v1.7/tools/shell/#write-data-to-influxdb-with-insert

1. 一灰灰Blog: https://liuyueyi.github.io/hexblog

一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

2. 声明

尽信书则不如,已上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

  • 微博地址: 小灰灰Blog
  • QQ: 一灰灰/3302797840

3. 扫描关注

一灰灰blog
技术图片

Influx Sql系列教程六:insert 修改数据

标签:格式   sar   指正   ret   https   blog   日期格   log   mes   

人气教程排行