【问题标题】:Cassandra: missing ')' at '<missing 'Cassandra:在 '<missing' 处缺少 ')'
【发布时间】:2023-06-28 14:15:02
【问题描述】:

尝试创建下表:

    CREATE TABLE customTableSchema(
        id UUID PRIMARY KEY,
        table_id UUID,
        schema text,
        created_at timestamp,
        last_modified_at timestamp,
    );

出现了这个错误:

SyntaxException: line 4:8 missing ')' at '<missing '

【问题讨论】:

  • 你试过去掉最后一个逗号吗? "last_modified_at 时间戳,"
  • 是的,我做到了......仍然是同样的错误:(
  • 问题在于字段架构 - 如果您将其更改为其他内容并删除最后一个字段的注释,它将起作用
  • 当我删除字段模式时它起作用了。但是为什么会导致错误呢?是因为与某事发生冲突吗? @ShlomiLivne

标签: cassandra cql cqlsh scylla


【解决方案1】:

schema 是 Cassandra 查询语言中的保留关键字,因此您不能使用它(请参阅this table in the docs)。

【讨论】:

    【解决方案2】:

    由于“schema”是一个保留关键字,您不能以当前形式使用您的查询。如果您打算使用它,那么您可以按照以下方式进行操作

    CREATE TABLE customTableSchema(
            id UUID PRIMARY KEY,
            table_id UUID,
            "schema" text,
            created_at timestamp,
            last_modified_at timestamp,
        );
    

    保留cql关键字可以参考this page

    【讨论】: