如果不存在,cassandra 创建密钥空间不起作用

Posted

技术标签:

【中文标题】如果不存在,cassandra 创建密钥空间不起作用【英文标题】:cassandra CREATE KEYSPACE IF NOT EXISTS not working 【发布时间】:2017-07-24 01:04:51 【问题描述】:

我正在使用 Cassandra 3.0.9 | CQL 规范 3.4.0 并运行两次以进行测试,它会创建两次表 如果不存在复制用户,则创建密钥空间 = 'class' : 'SimpleStrategy', 'replication_factor' : 1 ; 它应该返回错误,因为在我第二次运行它时已经创建,有什么想法吗?

【问题讨论】:

【参考方案1】:

如果您执行两次语句,则仅创建一次键空间“用户”。

'IF NOT EXISTS' 告诉 cassandra 如果密钥空间已经存在,则忽略创建请求。所以你不会在这里得到错误。如果省略这部分,如果键空间已经存在,则会出现以下错误。

AlreadyExists: Keyspace 'user' already exists

如果这不能回答您的问题,那么请问您在哪里看到“用户”被创建了两次?因为同名的keyspace只能存在一次。

希望有帮助,克里斯蒂安

【讨论】:

是的,它确实有帮助,我很困惑,因为我像这样阅读它 IF NOT EXIST 然后创建密钥空间,对我来说有点罕见。阅读文档说明了您所说的 我很高兴它有帮助。因此,如果您的问题得到了回答,我希望您标记答案。 我还不能,但我会尽快标记答案:) 也许您现在的分数足够高,可以将答案标记为正确?

以上是关于如果不存在,cassandra 创建密钥空间不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Spring Cassandra:在另一个键空间中的运行时创建模式

如何使用Cassandra复制因子1管理节点故障?

Cassandra密钥缓存

在Cassandra中创建表和创建列家族有什么区别?

如何修复cassandra节点

Cassandra 多个键空间或列族?