【问题标题】:Cassandra CQL ALTER Table with timeuuid column带有 timeuuid 列的 Cassandra CQL ALTER 表
【发布时间】:2014-07-26 16:49:13
【问题描述】:

我尝试了使用有效 timeuuid 列名的 ALTER TABLE -

cqlsh:dbase> ALTER TABLE jdata ADD 4f8eca60-1498-11e4-b6e6-ed7706c00c12 timeuuid;
Bad Request: line 1:24 no viable alternative at input '4f8eca60-1498-11e4-b6e6-ed7706c00c12'

所以,我接下来尝试使用引号,它起作用了 -

cqlsh:dbase> ALTER TABLE jdata ADD "4f8eca60-1498-11e4-b6e6-ed7706c00c12" timeuuid;
cqlsh:dbase> 

但是现在表格描述看起来很丑,列名用引号引起来 -

cqlsh:dbase> describe columnfamily jdata;

CREATE TABLE jdata (
  abc text,
  "4f8eca60-1498-11e4-b6e6-ed7706c00c12" timeuuid,
  xyz text,
  PRIMARY KEY ((abc), xyz)
) WITH
  bloom_filter_fp_chance=0.010000 AND
  blah blah;

所以我需要 ALTER 命令的帮助,以使用不带引号的 CQL 创建 timeuuid 列。

【问题讨论】:

    标签: cql3 cassandra-2.0


    【解决方案1】:

    根据定义,列的名称是一个字符串。 所以你不能把任何不同于字符串的东西作为列名。

    create table invalidnames (2 text primary key, 5 int);
    **Bad Request**: line 1:47 mismatched input '5' expecting ')'
    

    使用字符串有效

    create table validnames (two text primary key, five int);
    

    列的名称和列的类型没有任何关系

    HTH, 卡罗

    【讨论】:

      猜你喜欢
      • 2012-03-20
      • 2013-02-19
      • 2012-07-01
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      • 2017-04-04
      • 2011-07-18
      • 1970-01-01
      相关资源
      最近更新 更多