database - 在 Couchbase 中交换存储桶
问题描述
在关于 MySQL表交换的确切问题之后,我喜欢在 Couchbase 的服务器存储桶中执行相同的操作。
例如,给定的桶:
foo
和foo_new
我喜欢把名字换成:
foo_old
和foo
MySQL
等效的命令是:RENAME TABLE foo TO foo_old, foo_new To foo;
此外,我喜欢通过 Java SDK 而不是手动进行此更改。
我发现这篇旧帖子指出无法更改存储桶名称。
在较新的版本中可以吗?直到现在我还没有找到可以做到这一点的东西。
解决方案
没有用于重命名存储桶的 N1QL 命令。也没有计划。由于您无法从 UI 更改存储桶的名称,因此可以肯定地说也没有用于执行此操作的 API。
您必须使用 API 命令创建一个新存储桶,使用一堆 N1QL 命令在新存储桶上创建新索引,然后将所有文档从旧存储桶复制到新存储桶,大概使用 INSERT-SELECT。
除非您使用非常小的存储桶,可能是出于测试目的,否则我不推荐这种方法。
推荐阅读
- ios - Flutter Video_player卡在第一帧并在iOS未知时间后自动恢复
- single-sign-on - Mellon 服务提供商接受未签名的 SAML 请求
- extjs - extjs 树形面板单元格编辑
- arduino - 致命错误:mbedtls/config.h:没有这样的文件或目录
- android - 除非 Linking = None,否则无法使用 xamarin-fingerprint 编译 Xamarin Forms 项目
- python - 如何从 Collab 保存 csv 文件,我在哪里可以找到该文件?
- django - 如何解决 django 中的循环导入错误
- laravel - laravel 8 中的速率限制不适用于使用 post 方法的路线
- grep - watch 和 lsof + grep 一起使用
- arrays - VBA字符串关闭范围内的所有值而没有重复