在 MAP 数据类型列中使用 Cassandra 用户定义类型
Using Cassandra User Defined Type in a MAP Data Type Column
能否使用 Cassandra 用户定义类型 (UDT) 作为地图数据类型列的值?
例如:
CREATE TYPE message_record( message text, update_time timestamp );
CREATE TABLE user_records( user_account int, user_record map<text, FROZEN<message_record> );
然后我想插入到 table 中,如这个(无疑是不正确的)命令所示。我尝试了各种排列,但我的编辑器 (DevCenter) 不喜欢其中任何一种。
INSERT INTO user_records (user_account, user_record) Values (
1234,
[ {'0' : {message : 'message 1', update_time : '2021-06-08T18:00:05.000'}},
{'1' : {message : 'message 2', update_time :'2021-06-08T18:01:05.000'}},
{'2' : {message : 'message 3', update_time :'2021-06-08T18:02:05.000'}}
];
我试图避免将我的数据标准化为不同的 table。随着时间的推移,我希望能够向地图添加其他元素。
谢谢。
您使用的语法不正确 - 在您的情况下,您试图将其作为地图列表插入,但您只需要地图。您需要按如下方式使用它:
INSERT INTO user_records (user_account, user_record) Values (
1234,
{'0' : {message : 'message 1', update_time : '2021-06-08T18:00:05.000'},
'1' : {message : 'message 2', update_time :'2021-06-08T18:01:05.000'},
'2' : {message : 'message 3', update_time :'2021-06-08T18:02:05.000'}});
能否使用 Cassandra 用户定义类型 (UDT) 作为地图数据类型列的值?
例如:
CREATE TYPE message_record( message text, update_time timestamp );
CREATE TABLE user_records( user_account int, user_record map<text, FROZEN<message_record> );
然后我想插入到 table 中,如这个(无疑是不正确的)命令所示。我尝试了各种排列,但我的编辑器 (DevCenter) 不喜欢其中任何一种。
INSERT INTO user_records (user_account, user_record) Values (
1234,
[ {'0' : {message : 'message 1', update_time : '2021-06-08T18:00:05.000'}},
{'1' : {message : 'message 2', update_time :'2021-06-08T18:01:05.000'}},
{'2' : {message : 'message 3', update_time :'2021-06-08T18:02:05.000'}}
];
我试图避免将我的数据标准化为不同的 table。随着时间的推移,我希望能够向地图添加其他元素。
谢谢。
您使用的语法不正确 - 在您的情况下,您试图将其作为地图列表插入,但您只需要地图。您需要按如下方式使用它:
INSERT INTO user_records (user_account, user_record) Values (
1234,
{'0' : {message : 'message 1', update_time : '2021-06-08T18:00:05.000'},
'1' : {message : 'message 2', update_time :'2021-06-08T18:01:05.000'},
'2' : {message : 'message 3', update_time :'2021-06-08T18:02:05.000'}});