卡桑德拉地图的地图

时间:2014-11-18 13:59:35

标签: cassandra cql

为什么这不起作用:

CREATE TABLE bwlists (uuid uuid PRIMARY KEY, bwl map<ascii, bw map<ascii, ascii>>);

我得到了:

  

错误请求:第1:79行在输入'&gt;'

时没有可行的选择

1 个答案:

答案 0 :(得分:3)

CREATE TABLE bwlists (
  uuid uuid PRIMARY KEY, 
  bwl map<ascii, bw map<ascii, ascii>>);

Bad Request: line 1:79 no viable alternative at input '>'

您的首要问题是,您是要在bw地图中为地图bwl命名。这不会起作用,因为CQL不期望找到标识符(而不是类型)。然后可以将您的语法调整为:

CREATE TABLE bwlists (
  uuid uuid PRIMARY KEY, 
  bwl map<ascii, map<ascii, ascii>>);

但那仍然行不通。运行此CREATE语句会产生以下消息:

<ErrorMessage code=2000 [Syntax error in CQL query]
  message="map type cannot contain another collection">

目前,Cassandra / CQL不允许创建“地图地图”。

此外,即使Cassandra允许您使用保留字作为列名,也不是一个好主意。我会将uuid重命名为更适合您应用程序的上下文。