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

时间:2015-04-14 21:48:33

标签: couchbase n1ql

当我使用以下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
    }
}

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

2 个答案:

答案 0 :(得分: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
    }
}

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

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

答案 1 :(得分:2)

我无法重命名。我也检查了CLI,没有。如果可以,最好的办法是创建一个包含所需设置的新存储桶,然后使用cbtransfer将数据从旧存储桶移动到新存储桶。这是一个在线操作。