【问题标题】:Cassandra insert data into table column with data type set<text>Cassandra 将数据插入到数据类型为 set<text> 的表列中
【发布时间】:2017-09-13 00:32:58
【问题描述】:

我们试图在 Cassandra 中设置一个具有 set 列数据类型的表上的 INSERT 语句,但没有成功。这是一个例子:

INSERT INTO test_table
    (my_items)
VALUES
    ([{"test1":"test val 1","test2":"test val 2"}])

结果总是这样:

no viable alternative at input for [test val ]2

【问题讨论】:

  • 显示您的表架构

标签: cassandra cql


【解决方案1】:

将值括在大括号中并用逗号分隔

例子:

让我们有架构:

CREATE TABLE users (
  user_id text PRIMARY KEY,
  first_name text,
  last_name text,
  emails set<text>
);

插入:

INSERT INTO users (user_id, first_name, last_name, emails)
    VALUES('frodo', 'Frodo', 'Baggins', {'f@baggins.com', 'baggins@gmail.com'});

更新:

UPDATE users SET emails = emails + {'fb@friendsofmordor.org'} 
     WHERE user_id = 'frodo';

更多Using the set type


已编辑

如果要将值 "test1":"test val 1""test2":"test val 2" 插入到集合中,则 用单引号将每个值括起来

例子:

INSERT INTO users (user_id, first_name, last_name, emails)
    VALUES('2011331035', 'Md Ashraful', 'Islam', {'"test1":"test val 1"', '"test2":"test val 2"'});

【讨论】:

  • 如果使用 set 列我想对数据使用键/值对怎么办,就像问题中的示例一样?我认为这就是问题所在。
  • @what3vo 你为什么不用地图?
猜你喜欢
  • 2016-01-28
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 2020-08-15
  • 2023-04-07
  • 1970-01-01
  • 2021-07-24
  • 1970-01-01
相关资源
最近更新 更多