2016-08-18 39 views
0

考虑下表:如何重用UUID在CQL脚本

CREATE TABLE videos (
    video_id UUID, 
    added_date TIMESTAMP, 
    description TEXT, 
    title TEXT, 
    user_id UUID, 
    PRIMARY KEY (video_id) 
); 

CREATE TABLE videos_by_title_year (
    title TEXT, 
    added_year INT, 
    added_date TIMESTAMP, 
    description TEXT, 
    user_id UUID, 
    video_id UUID, 
    PRIMARY KEY ((title, added_year)) 
); 

当创建一个新的视频它被添加到这两个表。两者中的video_id都需要相同。在应用程序方面,你可以通过编程来解决这个问题

我正在为测试环境设置数据编写一些cql dml脚本。所以基本上有一长串INSERT陈述。

INSERT (video_id, ... , user_id) INTO videos VALUES (uuid(), ...); 
INSERT (title, ... , video_id) INTO videos_by_title_year VALUES ('Forrest Gump', ... , uuid()); 

在这种情况下,video_id的将是不同的。我可以在某些情况下在cql脚本中重新使用生成的UUID吗?或者是唯一可能的解决方案,在下面的脚本中手动设置ID?

INSERT (video_id, ... , user_id) INTO videos VALUES (7bd6e4ae-0ef2-11e5-9de3-8438355b7e3a, ...); 
INSERT (title, ... , video_id) INTO videos_by_title_year VALUES ('Forrest Gump', ... , 7bd6e4ae-0ef2-11e5-9de3-8438355b7e3a); 
+0

您使用哪个cassandra版本? –

+0

目前我被困在2.1 – pjanssen

+0

你可以在应用程序端管理UUID吗?喜欢:生成一个UUID,然后插入视频,然后插入在videos_by_title_year与相同的uuid –

回答

0

据我所知,这是不可能的。