当前位置:Gxlcms > 数据库问题 > Influx Sql系列教程七:delete 删除数据

Influx Sql系列教程七:delete 删除数据

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

前面介绍了使用insert实现新增和修改记录的使用姿势,接下来我们看一下另外一个简单的使用方式,如何删除数据

1. delete 语句

delete的官方语法如下

  1. <code>DELETE FROM <measurement_name> WHERE [<tag_key>='<tag_value>'] | [<time interval>]</code>

delete语句和我们常见sql语法有点像,但是注意一下上面的where中的条件,只允许根据tag和时间来进行删除操作

下面给出几个简单的例子

case1 根据时间删除

  1. <code>> select * from add_test
  2. name: add_test
  3. time age boy email name phone user_id
  4. ---- --- --- ----- ---- ----- -------
  5. 1564149327925320596 19 true bangzewu@126.com YiHui 110 0
  6. 1564149920283253824 18 true bangzewu@126.com YiHui 110 21
  7. 1564150279123000000 18 true bangzewu@126.com YiHui 110 22
  8. > delete from add_test where time>=1564150279123000000
  9. > select * from add_test
  10. name: add_test
  11. time age boy email name phone user_id
  12. ---- --- --- ----- ---- ----- -------
  13. 1564149327925320596 19 true bangzewu@126.com YiHui 110 0
  14. 1564149920283253824 18 true bangzewu@126.com YiHui 110 21</code>

case2 根据tag删除

注意name为保留名,因此需要用双引号括起来

  1. <code>> show tag keys from add_test
  2. name: add_test
  3. tagKey
  4. ------
  5. name
  6. phone
  7. > delete from add_test where "name"='YiHui'
  8. > select * from add_test
  9. ></code>

2. 不同保存策略的数据删除

从前面的语法定义中,没有看到指定保留策略的情况,那么如果需要删除某个保存策略的数据,应该怎样?

  1. <code>> insert add_test,name=YiHui,phone=110 boy=true,age=19i,user_id=2
  2. > insert into "1D" add_test,name=YiHui,phone=110 boy=true,age=19i,user_id=1
  3. > select * from add_test
  4. name: add_test
  5. time age boy name phone user_id
  6. ---- --- --- ---- ----- -------
  7. 1564483471390538399 19 true YiHui 110 2
  8. > select * from "1D".add_test
  9. name: add_test
  10. time age boy name phone user_id
  11. ---- --- --- ---- ----- -------
  12. 1564483483748916258 19 true YiHui 110 1
  13. > delete from add_test where "name"='YiHui'
  14. > select * from add_test
  15. > select * from "1D".add_test
  16. > </code>

执行上面的case之后,发现根据tag进行删除时,默认策略,和"1D"保存策略中的数据都被删除掉了

下面是另外一个验证

  1. <code>> select * from add_test;
  2. name: add_test
  3. time age boy name phone user_id
  4. ---- --- --- ---- ----- -------
  5. 1564483778197609864 19 true YiHui 110 1
  6. > insert into "2_h" add_test,name=YiHui,phone=110 boy=true,age=19i,user_id=1
  7. > select * from "2_h".add_test;
  8. name: add_test
  9. time age boy name phone user_id
  10. ---- --- --- ---- ----- -------
  11. 1564483793280811751 19 true YiHui 110 1
  12. > delete from add_test where time=1564483793280811751
  13. > select * from "2_h".add_test;
  14. > select * from add_test;
  15. name: add_test
  16. time age boy name phone user_id
  17. ---- --- --- ---- ----- -------
  18. 1564483778197609864 19 true YiHui 110 1</code>

我们在"2_h"这个策略中新增了一条数据,直接根据时间进行删除,当前的策略下的数据没有影响,"2_h"策略中刚添加的数据被删除掉了

II. 其他

0. 系列博文

  • 190729-Influx Sql系列教程六:insert 修改数据
  • 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
  • https://docs.influxdata.com/influxdb/v1.7/query_language/database_management/#delete-series-with-delete

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

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

2. 声明

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

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

3. 扫描关注

一灰灰blog
技术图片

Influx Sql系列教程七:delete 删除数据

标签:ima   shell   select   delete   tool   man   lan   rip   ogr   

人气教程排行