Можем ли мы использовать более одного набора Cassandra CQL (set, list, map) в одном запросе? - PullRequest
1 голос
/ 07 ноября 2019
create table seller(
    seller_id int primary key,
    seller_name text,
    seller_email set<text>, 
    seller_address map<text>, 
    seller_phone list<text>,
    product_id int,
    product_title_text,
    product_description text,
    product_trackno int,
    product_bidoption text,
    bid_startdate date,
    bid_closedate date,
    bid_startprice int,
    bid_withdrawdate date);

    SyntaxException: line 1:110 mismatched input '>' expecting ',' (...<text>,
        seller_address map<text[>],...)

Какие изменения необходимо внести, чтобы выполнить?

1 Ответ

2 голосов
/ 07 ноября 2019

Конечно, вы можете с некоторыми корректировками:

1) Помогает, если тип столбца не связан с именем столбца подчеркиванием. Вместо:

product_title_text,

Это будет работать:

product_title text,

2) Вам также потребуется предоставить оба типа для коллекции карт. Вместо:

seller_address map<TEXT>,

Это будет работать:

seller_address map<TEXT,TEXT>, 

Полный CQL:

create table seller(
  seller_id int primary key,
  seller_name text,
  seller_email set<TEXT>,
  seller_address map<TEXT,TEXT>, 
  seller_phone list<TEXT>, 
  product_id int,
  product_title text,
  product_description text,
  product_trackno int,
  product_bidoption text,
  bid_startdate date,
  bid_closedate date,
  bid_startprice int,
  bid_withdrawdate date);

Кроме того, действительно ли вы когда-либо будете запрашивать эту таблицу толькоseller_id? Если нет, вы можете переосмыслить определение первичного ключа.

...