我正在尝试找到一种方法来确定 Cassandra DB 中的表是否为空。
cqlsh> SELECT * from examples.basic ;
key | value
-----+-------
(0 rows)
Run Code Online (Sandbox Code Playgroud)
我正在运行count(*)以获取行数的值,但收到警告消息,所以我想知道是否有更好的方法来检查表是否为空(零行)。
cqlsh> SELECT count(*) from examples.basic ;
count
-------
0
(1 rows)
Warnings :
Aggregation query used without partition key
cqlsh>
Run Code Online (Sandbox Code Playgroud)
聚合(如计数)对于您想要完成的任务来说可能是一种矫枉过正,特别是使用星号通配符时,就好像表上有任何数据一样,查询将需要进行全表扫描。如果您有多条记录,这可能会非常昂贵。
获取所需结果的一种方法是查询
cqlsh> SELECT key FROM keyspace1.table1 LIMIT 1;
结果集将为空
cqlsh> SELECT key FROM keyspace1.table1 LIMIT 1;
key
-----
(0 rows)
Run Code Online (Sandbox Code Playgroud)
结果集会有一条记录
cqlsh> SELECT key FROM keyspace1.table1 LIMIT 1;
key
----------------------------------
uL24bhnsHYRX8wZItWM6xKdS0WLvDsgi
(1 rows)
Run Code Online (Sandbox Code Playgroud)