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

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

在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;这个时候可以考虑由自己来删除旧的数据



相关文章
|
14天前
|
SQL druid Java
传统后端SQL数据层替代解决方案: 内置数据源+JdbcTemplate+H2数据库 详解
传统后端SQL数据层替代解决方案: 内置数据源+JdbcTemplate+H2数据库 详解
15 1
|
16天前
|
SQL 数据库
零基础学习数据库SQL语句之操作表中数据的DML语句
零基础学习数据库SQL语句之操作表中数据的DML语句
18 0
零基础学习数据库SQL语句之操作表中数据的DML语句
|
20天前
|
SQL 存储 数据库
如何在SQL中添加数据:一个初学者指南
如何在SQL中添加数据:一个初学者指南
27 3
|
25天前
|
SQL 数据库
SQL INSERT INTO SELECT 语句
SQL INSERT INTO SELECT 语句
49 3
|
27天前
|
SQL 运维 数据管理
数据管理DMS产品使用合集之在执行 INSERT 语句时是否会生成回滚 SQL
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
12天前
|
SQL
sql语句按指定某个字段分组后删除重复数据只保留id最小/最大的一条数据
sql语句按指定某个字段分组后删除重复数据只保留id最小/最大的一条数据
9 0
|
14天前
|
SQL 分布式计算 大数据
MaxCompute产品使用问题之如何使用MaxCompute SQL客户端删除分区数据
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
16天前
|
SQL 前端开发 关系型数据库
零基础学习数据库SQL语句之查询表中数据的DQL语句
零基础学习数据库SQL语句之查询表中数据的DQL语句
13 0
|
19天前
|
SQL IDE Java
Java连接SQL Server数据库的详细操作流程
Java连接SQL Server数据库的详细操作流程
|
3天前
|
SQL 存储 关系型数据库
关系型数据库SQL Server学习
【7月更文挑战第4天】
12 2