为什么这不起作用:
CREATE TABLE bwlists (uuid uuid PRIMARY KEY, bwl map<ascii, bw map<ascii, ascii>>);
我得到了:
错误请求:第1:79行在输入'&gt;'
时没有可行的选择
答案 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
重命名为更适合您应用程序的上下文。