如何在couchbase中重命名一个桶?

Pra*_*apa 3 couchbase sql++

当我使用以下N1QL语句时,我有一个桶名0001,我得到一个"5000"语法错误:

cbq> Select * from 0001;
{
    "requestID": "f2b70856-f80c-4c89-ab37-740e82d119b5",
    "errors": [
        {
            "code": 5000,
            "msg": "syntax error"
        }
    ],
    "status": "fatal",
    "metrics": {
        "elapsedTime": "349.733us",
        "executionTime": "204.442us",
        "resultCount": 0,
        "resultSize": 0,
        "errorCount": 1
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为它需要0001作为数字而不是作为存储桶名称,是否有一种简单的方法来重命名它?

ger*_*dss 5

在这种情况下,您可以使用N1QL中的后退标记来转义存储桶名称:

cbq> Select * from `0001`;
{
    "requestID": "f48527e6-6035-47e7-a34f-90efe9f90d4f",
    "signature": {
        "*": "*"
    },
    "results": [
        {
            "0001": {
                "Hello": "World"
            }
        }
    ],
    "status": "success",
    "metrics": {
        "elapsedTime": "2.410929ms",
        "executionTime": "2.363788ms",
        "resultCount": 1,
        "resultSize": 80
    }
}
Run Code Online (Sandbox Code Playgroud)

目前,现在可以重命名存储桶,而不是执行以下操作之一:

  1. 使用备份桶cbbackup.然后重新创建它并使用它来恢复它cbrestore.
  2. 创建第二个集群并使用XDCR将数据传输到具有正确命名的存储桶的新集群.