我想在Java中检查Cassandra表中是否存在列,如果存在则执行某个操作。我该如何做?
我想在Java中检查Cassandra表中是否存在列,如果存在则执行某个操作。我该如何做?
您可以通过元数据类获取表定义。类似于:
Column column = cluster.getMetadata().getKeyspace("ks-name")
.getTable("table-name").getColumn("column-name");
if (column != null) {
// do your stuff
}
扩展@Alex ott的答案,如果您在执行查询后已经拥有了Resultset/Row,则可以使用以下方法检查行中是否已存在列:
row.getColumnDefinitions().getIndexOf(<columnName>)
。
如果返回的索引是非负数,则该列存在于该行中。
int indx = row.getColumnDefinitions().getIndexOf(columnName);
if(indx > -1){
// column-exists.
}
.