1

我正在使用以下 Cassandra/CQL 版本:

[cqlsh 4.0.1 | 卡桑德拉 2.0.1 | CQL 规范 3.1.1 | 节俭协议 19.37.0]

我正在尝试将数据插入到具有区分大小写的列名的预先存在的 CF 中。尝试插入数据时遇到“未知标识符”错误。

以下是列族的描述方式:

CREATE TABLE "Sample_List_CS" (
  key text,
  column1 text,
  "fName" text,
  "ipSubnet" text,
  "ipSubnetMask" text,
  value text,
  PRIMARY KEY (key, column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.000000 AND
  gc_grace_seconds=0 AND
  index_interval=128 AND
  read_repair_chance=0.000000 AND
  replicate_on_write='false' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};

CREATE INDEX ipSubnet ON "Sample_List_CS" ("ipSubnet");

插入语句导致错误:

cqlsh:Sample_KS> INSERT INTO "Sample_List_CS" (key,column1,"fName") VALUES    ('123','1','myValue');
Bad Request: Unknown identifier fName

cqlsh:Sample_KS> INSERT INTO "Sample_List_CS" (key,column1,"ipSubnet") VALUES    ('123','1','255');
Bad Request: Unknown identifier ipSubnet

知道我做错了什么吗?

4

1 回答 1

3

据我了解,使用WITH COMPACT STORAGE表时可能只有主键以外的一列。

正如手册中所引用的

使用紧凑存储指令可防止您添加多个不属于 PRIMARY KEY 的列。

对您而言,这意味着您的表中只能包含以下 4 列之一:

  • “名字”
  • “ip子网”
  • “ipSubnetMask”
  • 价值

(或者,您可以将其中 3 个添加到主键定义中。)

因此,其他三列导致错误是有道理的Unknown identifier

于 2013-12-02T19:21:14.593 回答