大写 table 名称未配置 table 错误

unconfigured table error with Capitalized table name

我所有的 Cassandra 列族名称都是大写的(如 FunTableSomeOtherTable 等)——我正在从 Thrift API 切换到 CQL,每当我进行查询(如 SELECT * FROM FunTable)失败并显示 cassandra.InvalidRequest: Error from server: code=2200 [Invalid query] message="unconfigured table funtable"

怎么回事?

事实证明,正如我应该从错误消息中小写的 table 名称中得出的那样,CQL 不区分大小写,除了在引号内的字符串(类似于其他 SQL方言)。所以解决方案就是在 table 名称周围加上双引号,如下所示:SELECT * FROM "FunTable"

如果您要指定键空间,则需要将引号放在 table 名称周围,而不是键空间和 table 名称的组合周围,例如SELECT * FROM good_keyspace."FunTable"