2016-08-18 36 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

據我所知,這是不可能的。