首页 > 解决方案 > 在 Couchbase 中交换存储桶

问题描述

关于 MySQL表交换的确切问题之后,我喜欢在 Couchbase 的服务器存储桶中执行相同的操作。

例如,给定的桶:

foofoo_new

我喜欢把名字换成:

foo_oldfoo

MySQL等效的命令是:RENAME TABLE foo TO foo_old, foo_new To foo;

此外,我喜欢通过 Java SDK 而不是手动进行此更改。

我发现这篇旧帖子指出无法更改存储桶名称。

在较新的版本中可以吗?直到现在我还没有找到可以做到这一点的东西。

标签: databasesdkcouchbasen1ql

解决方案


没有用于重命名存储桶的 N1QL 命令。也没有计划。由于您无法从 UI 更改存储桶的名称,因此可以肯定地说也没有用于执行此操作的 API。

您必须使用 API 命令创建一个新存储桶,使用一堆 N1QL 命令在新存储桶上创建新索引,然后将所有文档从旧存储桶复制到新存储桶,大概使用 INSERT-SELECT。

除非您使用非常小的存储桶,可能是出于测试目的,否则我不推荐这种方法。


推荐阅读