How to list all cassandra tables
There are many tables in cassandra database, which contain column titled user_id. The values user_id are referred to user stored in table users. As some users are deleted, I would like to delete orphan records in all tables that contain column titled user_id.
Is there a way to list all tables using CassandraSQLContext or any other built-in method or custom procedure in order to avoid explicitly defining the list of tables?
From cqlsh
execute describe tables;
There are system tables which can provide information about stored keyspaces, tables, columns.
Try run follows commands in cqlsh console:
-
Get keyspaces info
SELECT * FROM system.schema_keyspaces ;
-
Get tables info
SELECT columnfamily_name FROM system.schema_columnfamilies WHERE keyspace_name = 'keyspace name';
-
Get table info
SELECT column_name, type, validator FROM system.schema_columns WHERE keyspace_name = 'keyspace name' AND columnfamily_name = 'table name';
Since v 5.0.x Docs
-
Get keyspaces info
SELECT * FROM system_schema.keyspaces;
-
Get tables info
SELECT * FROM system_schema.tables WHERE keyspace_name = 'keyspace name';
-
Get table info
SELECT * FROM system_schema.columns WHERE keyspace_name = 'keyspace_name' AND table_name = 'table_name';
Since v 6.0 Docs
-
Get keyspaces info
SELECT * FROM system_schema.keyspaces
-
Get tables info
SELECT * FROM system_schema.tables WHERE keyspace_name = 'keyspace name';
-
Get table info
SELECT * FROM system_schema.columns WHERE keyspace_name = 'keyspace_name' AND table_name = 'table_name';
desc keyspaces; // list all databases/collections names
use anyKeyspace; // select any database
desc tables; // list all tables in collection/ database