Delete(删除)

DELETE 语句用于删除满足 WHERE 子句中谓词条件的文档。 如果未指定 WHERE 子句,则会删除所有文档。

设置

默认情况下,DELETE 语句是禁用的。要在 SQL 中启用 DELETE 功能,您需要通过发送以下请求来更新配置:

PUT _plugins/_query/settings
{
  "transient": {
    "plugins.sql.delete.enabled": "true"
  }
}

语法

规则 singleDeleteStatement

singleDeleteStatement

示例

SQL 查询:

DELETE FROM accounts
WHERE age > 30

_explain:

{
  "size" : 1000,
  "query" : {
    "bool" : {
      "must" : [
        {
          "range" : {
            "age" : {
              "from" : 30,
              "to" : null,
              "include_lower" : false,
              "include_upper" : true,
              "boost" : 1.0
            }
          }
        }
      ],
      "adjust_pure_negative" : true,
      "boost" : 1.0
    }
  },
  "_source" : false
}

结果集:

{
  "schema": [
    {
      "name": "deleted_rows",
      "type": "long"
    }
  ],
  "total": 1,
  "datarows": [
    [
      3
    ]
  ],
  "size": 1,
  "status": 200
}

datarows 字段显示已删除的文档数量。