【问题标题】:how do I check if a column exists in cassandra table in java?java - 如何检查java中的cassandra表中是否存在列?
【发布时间】:2018-08-10 14:15:04
【问题描述】:

我想检查java中cassandra表中是否存在列,如果存在则执行操作。我该怎么做?

【问题讨论】:

    标签: java cassandra cassandra-3.0 cassandra-2.0 datastax-java-driver


    【解决方案1】:

    您可以通过Metadata class 获取表定义。比如:

    Column column = cluster.getMetadata().getKeyspace("ks-name")
       .getTable("table-name").getColumn("column-name");
    if (column != null) {
       // do your stuff
    }
    

    【讨论】:

    • 这是最好的方法,您可以查询架构,但保存该信息的表经常在版本之间更改,因此让驱动程序处理该逻辑。
    【解决方案2】:

    扩展@Alex ott 答案,如果您在执行查询后已经有结果集/行,那么您可以使用此检查列是否已存在于行中 row.getColumnDefinitions().getIndexOf(<columnName>)。 如果返回索引为非负数,则该列存在于该行中。

    int indx = row.getColumnDefinitions().getIndexOf(columnName);
    if(indx > -1){
       // column-exists. 
    }
    

    .

    【讨论】:

      猜你喜欢
      • 2020-03-31
      • 1970-01-01
      • 2013-04-07
      • 2021-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多