我可以编写程序来查看YugaByte的YCQL(Cassandra)api中是否存在表吗?

时间:2019-03-14 12:26:07

标签: database cassandra distributed-database yugabyte-db

是否有一种编程方式来检查YugaByte的YCQL(Cassandra)api中是否存在表?

例如,在Postgres中,可以执行以下操作:

How to check if a table exists in a given schema

SELECT EXISTS (
   SELECT 1
   FROM   information_schema.tables 
   WHERE  table_schema = 'schema_name'
   AND    table_name = 'table_name'
   );

YCQL中是否有一个等价物?”

2 个答案:

答案 0 :(得分:2)

printf()吗?至少对Cassandra有用。计数不是必需的,您可以仅查看结果集是否包含任何内容。如果执行此操作以查看是否应创建表,则可以仅使用z子句运行create语句,如果该子句已经存在,则为noop。

答案 1 :(得分:1)

是的,您可以对YugaByte DB的YCQL进行相同的操作。这是一个示例,显示了如何通过cqlsh检查键空间和表是否存在。

设置:

whats the number?
5
Wrong number try again
2
Wrong number try again
4
Wrong number try again
8
GOT IT

检查键空间是否存在

cqlsh> CREATE KEYSPACE IF NOT EXISTS ksp;

cqlsh> CREATE TABLE IF NOT EXISTS ksp.t(k int PRIMARY KEY, v int);

检查表是否存在

cqlsh> select count(*) from system_schema.keyspaces 
       where keyspace_name = 'ksp';


 count
-------
     1

(1 rows)
cqlsh> select count(*) from system_schema.keyspaces 
       where keyspace_name = 'non-existent-ksp';

 count
-------
     0

(1 rows)