使用Python驱动程序检查Cassandra表中是否存在记录

时间:2016-06-21 13:56:02

标签: python cassandra

如何确定表中是否存在记录?我尝试的方法是执行unsigned int查询,然后使用以下内容计算SELECT的行:

ResultSet

但是,rows = session.execute("SELECT * FROM test_table WHERE id=%s", ([<id_here>])) if len(rows) == 0: print "Does not exist" 不支持ResultSet。在另一个答案中,他们建议使用len,强烈建议不要在另一个参考文献中使用SELECT COUNT(*)。有更标准的方法吗?

2 个答案:

答案 0 :(得分:5)

您只需执行以下操作之一:

rows = session.execute("SELECT * FROM test_table WHERE id=%s", ([<id_here>]))
if not rows:
    print "Does not exist"

或者,如果选择多行,您可以使用以下内容迭代ResultSet:

for row in rows:
    do_something(row)

ResultSet还有一个current_rows属性,如果没有返回,则该属性为空。

有关如何使用ResultSet的详细信息,请参阅http://datastax.github.io/python-driver/api/cassandra/cluster.html#cassandra.cluster.ResultSet

答案 1 :(得分:0)

Cassandra session.execute返回包含ResultSet属性的current_rows对象。

尝试以下操作:

    r = session.execute(f"SELECT * FROM test_table WHERE id = {some_id} limit 1")
    if(len(r.current_rows) == 0):
        # your code here