Первичный ключ должен быть уникальным. Это то, как вы отличаете guish рядов друг от друга. Вы можете использовать для значения столбец коллекции (карта, набор, список):
cqlsh> create table david.test(key TEXT, value SET<TEXT>, PRIMARY KEY(key));
cqlsh> insert into david.test(key,value) VALUES ('primary_key1', {'v1','v2'});
cqlsh> select * from david.test;
key | value
--------------+--------------
primary_key1 | {'v1', 'v2'}
Другой способ - добавить ключ кластеризации . key
будет столбцом раздела, а value
будет ключом кластеризации (который изменит первичный ключ на (key,value)
):
cqlsh> create table david.test(key TEXT, value TEXT, PRIMARY KEY((key), value)) WITH CLUSTERING ORDER BY (value DESC);
cqlsh> insert into david.test(key,value) values('primary_key1', 'v1');
cqlsh> insert into david.test(key,value) values('primary_key1', 'v2');
cqlsh> select * from david.test;
key | value
--------------+-------
primary_key1 | v2
primary_key1 | v1
Здесь key
- это partition value
. primary key
(ключ, значение);