首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我能在卡桑德拉有一个以数字开头的关键字空间吗?

我能在卡桑德拉有一个以数字开头的关键字空间吗?
EN

Stack Overflow用户
提问于 2015-03-19 21:56:30
回答 1查看 2.4K关注 0票数 2

所以我读了r.html,上面写着“键空间名是32个或更少的字母--数字字符和下划线,第一个字符是alpha字符。”然而,如果我用Cassandra 2.1.2打开cqlsh并这样做:

cqlsh> create keyspace "123abc" with replication = {'class': 'SimpleStrategy', 'replication_factor': 1};

然后,它创建密钥空间,没有问题,我可以插入和查询数据,没有问题。这些文件是在骗我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-20 00:59:00

不,这些文件不是在骗你。当我试图创建一个名为123abc的键空间时,我会得到一个错误:

代码语言:javascript
运行
复制
create keyspace 123abc with replication = 
{'class': 'NetworkTopologyStrategy', 'PloetzLabs': '1'};

SyntaxException: ErrorMessage code=2000 [Syntax error in CQL query] 
    message="line 1:28 missing K_WITH at 'replication' 
    (create keyspace 123abc with [replication] =...)"

另一方面,当我将键空间名称封装在双引号中时(就像您所做的那样),它可以工作。但是当我描述我的关键空间时,我现在看到的是:

代码语言:javascript
运行
复制
aploetz@cqlsh> desc keyspaces;

system_traces  system  "123abc"  stackoverflow

当我尝试use键空间时,事情变得有趣起来:

代码语言:javascript
运行
复制
aploetz@cqlsh> use 123abc;

Improper use command.

aploetz@cqlsh> use "123abc" ;
aploetz@cqlsh:123abc> SELECT * FROM 123abc.test1 ;

SyntaxException: <ErrorMessage code=2000 [Syntax error in CQL query] 
    message="line 1:20 mismatched character '.' expecting set null">

aploetz@cqlsh:123abc> SELECT * FROM "123abc".test1 ;

 id  | value
-----+-------
 id1 |  val1

(1 rows)

引号不显示在cqlsh提示符中,但是现在只要您与前进的键空间交互,就需要它们。

所以从技术上讲,键空间名中的第一个字符不是数字,而是双引号。因此,也许医生在某种程度上撒谎(LOL),应该读为:

...the首先是一个alpha字符,除非用双引号括起来。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29155726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档