我正在使用Datastax driver
访问cassandra
。我的方法采用cql string paramater
。
因为cql是任意的,所以我不知道cql字符串中表的primary keys
。
在ResultSet中,我没有找到与metadata
关联的primary keys
。
我只能得到names
的values
和all columns
。
我想知道哪些列是主键。
如何programmatically
获取cql中表的主键?
public Map<String, Object> search(String cql) {
SimpleStatement statement = new SimpleStatement(cql);
ResultSet result = session.execute(statement);
// ...
}
最佳答案
您可以使用TableMetadata.getPrimaryKey()
方法
这是一个示例演示,用于获取键空间“ test”和表ashraful_test
的主键
try (Cluster cluster = Cluster.builder().addContactPoints("127.0.0.1").withCredentials("cassandra", "cassandra").build(); Session session = cluster.connect("test")) {
System.out.println(cluster.getMetadata().getKeyspace(session.getLoggedKeyspace()).getTable("ashraful_test").getPrimaryKey());
}
关于java - 如何以编程方式知道Cassandra中表的主键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43363861/