如何在 Java 中检查 Cassandra 表中是否存在列?

3

我想在Java中检查Cassandra表中是否存在列,如果存在则执行某个操作。我该如何做?

2个回答

3

您可以通过元数据类获取表定义。类似于:

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

1
这是最佳路线,你可以查询模式,但保存该信息的表在不同版本之间经常发生变化,所以让驱动程序处理那个逻辑。 - Chris Lohfink

2

扩展@Alex ott的答案,如果您在执行查询后已经拥有了Resultset/Row,则可以使用以下方法检查行中是否已存在列: row.getColumnDefinitions().getIndexOf(<columnName>)。 如果返回的索引是非负数,则该列存在于该行中。

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

.


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接