当前位置: 首页 > 知识库问答 >
问题:

Cassandra CLI使用主键创建列族

宇文和昶
2023-03-14

我试图在Cassandra CLI版本1.1.6中创建一个列族,我不确定如何将主键指定为MovieID。

CREATE COLUMN FAMILY movies
WITH comparator = UTF8Type
AND key_validation_class=UTF8Type
AND column_metadata = [
{column_name: movieid, validation_class: UTF8Type}
{column_name: title, validation_class: UTF8Type}
{column_name: genres, validation_class: UTF8Type}];

共有1个答案

柴博
2023-03-14

通过CLI创建列族不会创建必须遵守的模式。这取决于插入数据的方式,即定义主键的方式。当您通过CLi创建列族时,您只需定义主键将包含什么样的值,即它是字符串(UTF8Type)、int(IntegerType)等。

此外,实际上不能通过CLI为键列(也就是表中的主键)指定别名。为此必须使用CQL。如果您想要定义模式和结构化查询,而不是使用宽行,那么应该针对较新版本的cassandra(为什么现在是1.2.x?)并使用CLQ3。

通过description table命令从cqlsh查看时,您的cassandra-cli语句将创建以下内容:

CREATE TABLE movies (
  KEY text PRIMARY KEY,    <------- pk 
  genres text,
  title text,
  movieid text
) WITH // and a bunch of cf options

但这并不意味着不能插入另一个没有定义的列,因为thrift并不真正关心CF的模式。

 类似资料:
  • jOOQ具有文档中所述的CREATE TABLE语法: 我想知道如何定义哪个列属于主键?那么,在jOOQ中有没有办法用主键信息创建create TABLE语句呢? 我对SQLite的解决方案特别感兴趣,它没有语法来添加主键,所以我认为在最坏的情况下,我必须去一个特定于数据库的解决方案?

  • 我正在使用JOOQ(JOOQ中的新手)在spring boot项目中使用Rest API在运行时创建数据库。在其中一种情况下,我需要创建一个具有复合主键的表,该主键可以是多个列的组合。我使用下面的代码创建约束- 我已经有

  • 你不知道如何在JOOQ(Java)中创建主键吗?我需要的只是得到正确的创建表字符串。我还没有这段代码(使用SQLDialect。MYSQL): 输出(来自字符串生成器): 我需要的是设置主键以获得正确的输出: 不使用execute()是否可能?因为我只需要它作为字符串,所以我想再次使用only getSQL()命令。。。 我发现了类似这样的东西:DSL。主密钥(“id”); 但我无法将它与rest

  • 问题内容: 我已经使用下面给出的建议更新了代码,该建议已经过测试并且效果很好,可以为将来的用户提供快速参考。 我使用下面的代码来创建链接表,而不必为每个用户设置DSN,我如何指定主键,因为系统会询问您是否手动连接: 注意:上面是针对SQL Server VIEW的,对于SQL Server TABLE而言是相同的,但是您不需要该行(如果在服务器上正确设置了主键)。 该代码代替了链接表并手动指定主键

  • 问题内容: 我正在尝试根据创建记录的日期为每个记录创建唯一的ID。例如,如果今天创建记录,我希望键为20101130XX,其中XX是数字的顺序列表,例如01、02、03等…以防今天有多个人创建记录。 如果昨天有3个人创建了记录,则其唯一ID为 2011032700 2011032701 2011032702 然后午夜到了,有人创建了一个新记录 2011032800 这样做的目的是给每个记录一个唯一

  • 问题内容: 我想用Pandas的to_sql函数创建一个具有主键的MySQL表(在mysql表中具有主键通常是一种好习惯),如下所示: 但这会创建一个没有任何主键(甚至没有任何索引)的表。 该文档提到了参数“ index_label”,该参数与“ index”参数结合可用于创建索引,但未提及主键的任何选项。 文献资料 问题答案: 免责声明:这个答案是实验性的,而不是实用的,但也许值得一提。 我发现