是否有一种编程方式来检查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中是否有一个等价物?”
答案 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)