如何在具有用户定义类型的 table 中插入值?
How to insert values in a table which has user defined types?
我正在使用 Scylla (Cassandra) 数据库并尝试创建 tables 来处理 User-Defined Types
,如下所示:
CREATE TYPE process (
id int,
discount float
);
CREATE TYPE service (
id int,
url text
);
CREATE TABLE data (
id int PRIMARY KEY,
fname text,
lname text,
service set<frozen<service>>,
monthly_process frozen<process>
);
我的困惑是如何在 data
table 中插入数据。问题是我对 process
和 service
类型在这里的工作方式感到困惑,我该如何在其中插入值?
我试过下面的例子,但它给了我一个错误:
insert into test (id, fname, lname, service, monthly_process )
values (1, 'abc', 'world', {'service': [{'id':1, 'url': 'some_url1'},
{'id':2, 'url': 'some_url2'}]}, {'id':1, 'discount': 10.0});
我得到的错误:
InvalidRequest: Error from server: code=2200 [Invalid query]
message="Invalid map literal for service of type set<frozen<service>>"
这是您的查询的工作版本;
insert into data (id, fname, lname, service, monthly_process)
values (2, 'abc', 'world', {{id: 1, url: 'some'}, {id : 2, url:'another'}}, {id:1, discount: 10.0});
service set<frozen<service>>
格式为 {{id:1, url:'a'}, {id:2, url:'b'}}
monthly_process frozen<process>
格式为 {id:1, discount: 10.0}
我正在使用 Scylla (Cassandra) 数据库并尝试创建 tables 来处理 User-Defined Types
,如下所示:
CREATE TYPE process (
id int,
discount float
);
CREATE TYPE service (
id int,
url text
);
CREATE TABLE data (
id int PRIMARY KEY,
fname text,
lname text,
service set<frozen<service>>,
monthly_process frozen<process>
);
我的困惑是如何在 data
table 中插入数据。问题是我对 process
和 service
类型在这里的工作方式感到困惑,我该如何在其中插入值?
我试过下面的例子,但它给了我一个错误:
insert into test (id, fname, lname, service, monthly_process )
values (1, 'abc', 'world', {'service': [{'id':1, 'url': 'some_url1'},
{'id':2, 'url': 'some_url2'}]}, {'id':1, 'discount': 10.0});
我得到的错误:
InvalidRequest: Error from server: code=2200 [Invalid query]
message="Invalid map literal for service of type set<frozen<service>>"
这是您的查询的工作版本;
insert into data (id, fname, lname, service, monthly_process)
values (2, 'abc', 'world', {{id: 1, url: 'some'}, {id : 2, url:'another'}}, {id:1, discount: 10.0});
service set<frozen<service>>
格式为{{id:1, url:'a'}, {id:2, url:'b'}}
monthly_process frozen<process>
格式为{id:1, discount: 10.0}