我正在使用以下Cassandra / CQL版本:
[cqlsh 4.0.1 | Cassandra 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");
insert语句导致错误:
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
知道我做错了吗?
答案 0 :(得分:3)
据我所知,在使用WITH COMPACT STORAGE
时,表可能只有一列而不是主键。
引用the manual:
使用紧凑型存储指令可防止您添加多个 一列不属于PRIMARY KEY。
对于您而言,这意味着您的表格中只能包含以下4列中的一列:
(或者,您可以将其中3个添加到主键定义中。)
因此有意义的是,其他三列导致Unknown identifier
错误。