Influx Sql系列教程七:delete 刪除數據


前面介紹了使用insert實現新增和修改記錄的使用姿勢,接下來我們看一下另外一個簡單的使用方式,如何刪除數據

1. delete 語句

delete的官方語法如下

DELETE FROM <measurement_name> WHERE [<tag_key>='<tag_value>'] | [<time interval>]

delete語句和我們常見sql語法有點像,但是注意一下上面的where中的條件,只允許根據tag和時間來進行刪除操作

下面給出幾個簡單的例子

case1 根據時間刪除

> select * from add_test
name: add_test
time                age boy  email            name  phone user_id
----                --- ---  -----            ----  ----- -------
1564149327925320596 19  true bangzewu@126.com YiHui 110   0
1564149920283253824 18  true bangzewu@126.com YiHui 110   21
1564150279123000000 18  true bangzewu@126.com YiHui 110   22
> delete from add_test where time>=1564150279123000000
> select * from add_test
name: add_test
time                age boy  email            name  phone user_id
----                --- ---  -----            ----  ----- -------
1564149327925320596 19  true bangzewu@126.com YiHui 110   0
1564149920283253824 18  true bangzewu@126.com YiHui 110   21

case2 根據tag刪除

注意name為保留名,因此需要用雙引號括起來

> show tag keys from add_test
name: add_test
tagKey
------
name
phone
> delete from add_test where "name"='YiHui'
> select * from add_test
>

2. 不同保存策略的數據刪除

從前面的語法定義中,沒有看到指定保留策略的情況,那么如果需要刪除某個保存策略的數據,應該怎樣?

> insert add_test,name=YiHui,phone=110 boy=true,age=19i,user_id=2
> insert into "1D" add_test,name=YiHui,phone=110 boy=true,age=19i,user_id=1
> select * from add_test
name: add_test
time                age boy  name  phone user_id
----                --- ---  ----  ----- -------
1564483471390538399 19  true YiHui 110   2
> select * from "1D".add_test
name: add_test
time                age boy  name  phone user_id
----                --- ---  ----  ----- -------
1564483483748916258 19  true YiHui 110   1

> delete from add_test where "name"='YiHui'
> select * from add_test
> select * from "1D".add_test
> 

執行上面的case之后,發現根據tag進行刪除時,默認策略,和"1D"保存策略中的數據都被刪除掉了

下面是另外一個驗證

> select * from add_test;
name: add_test
time                age boy  name  phone user_id
----                --- ---  ----  ----- -------
1564483778197609864 19  true YiHui 110   1
> insert into "2_h"  add_test,name=YiHui,phone=110 boy=true,age=19i,user_id=1
> select * from "2_h".add_test;
name: add_test
time                age boy  name  phone user_id
----                --- ---  ----  ----- -------
1564483793280811751 19  true YiHui 110   1
> delete from add_test where time=1564483793280811751
> select * from "2_h".add_test;
> select * from add_test;
name: add_test
time                age boy  name  phone user_id
----                --- ---  ----  ----- -------
1564483778197609864 19  true YiHui 110   1

我們在"2_h"這個策略中新增了一條數據,直接根據時間進行刪除,當前的策略下的數據沒有影響,"2_h"策略中剛添加的數據被刪除掉了

II. 其他

0. 系列博文

參考博文

1. 一灰灰Bloghttps://liuyueyi.github.io/hexblog

一灰灰的個人博客,記錄所有學習和工作中的博文,歡迎大家前去逛逛

2. 聲明

盡信書則不如,已上內容,純屬一家之言,因個人能力有限,難免有疏漏和錯誤之處,如發現bug或者有更好的建議,歡迎批評指正,不吝感激

3. 掃描關注

一灰灰blog
image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM