【问题标题】:How to reuse uuid in cql script如何在 cql 脚本中重用 uuid
【发布时间】:2016-08-18 13:40:49
【问题描述】:

给定以下表格:

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);

【问题讨论】:

  • 你使用的是哪个 cassandra 版本?
  • 目前我卡在 2.1
  • 你能在应用程序端管理 UUID 吗?喜欢:生成一个UUID,然后插入视频,然后用相同的uuid插入videos_by_title_year
  • 这个问题有多种解决方案,但我希望能够只运行一个脚本来填充数据库。我可以在应用程序端管理 UUID,但我必须编写该代码。或者我必须完全开发我的应用程序并使用该应用程序使 de db 处于首选状态,而不是导出到 *.csv。

标签: scripting cassandra cql dml


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 2013-07-30
    • 2015-08-03
    • 1970-01-01
    • 2022-08-09
    • 2014-10-06
    • 2014-07-01
    • 2018-09-19
    相关资源
    最近更新 更多