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:

  1. Get keyspaces info

    SELECT * FROM system.schema_keyspaces ;

  2. Get tables info

    SELECT columnfamily_name FROM system.schema_columnfamilies WHERE keyspace_name = 'keyspace name';

  3. 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

  1. Get keyspaces info

    SELECT * FROM system_schema.keyspaces;

  2. Get tables info

    SELECT * FROM system_schema.tables WHERE keyspace_name = 'keyspace name';

  3. Get table info

    SELECT * FROM system_schema.columns WHERE keyspace_name = 'keyspace_name' AND table_name = 'table_name';

Since v 6.0 Docs

  1. Get keyspaces info

    SELECT * FROM system_schema.keyspaces

  2. Get tables info

    SELECT * FROM system_schema.tables WHERE keyspace_name = 'keyspace name';

  3. 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