扫描数据库,查询空表名称

SELECT relname AS table_name,reltuples::bigint
FROM pg_class
WHERE relkind = 'r'
AND relname NOT LIKE 'pg_%'
AND relname NOT LIKE 'sql_%'
AND relname NOT LIKE 'qrtz_%'
AND relname NOT LIKE 'information%' AND reltuples = 0;

这是一个查询PostgreSQL数据库中空表的SQL语句。具体分析如下:

1. 使用`pg_class`系统表。

在这个SQL语句中,使用了PostgreSQL自带的`pg_class`系统表来查询表信息。该表包含了所有可访问的数据库对象的信息,如表、索引、序列等。其中,`relname`表示表名,`relkind`表示对象类型,`reltuples`表示行数(对于表而言)或元组数(对于其他对象而言)。

2. 筛选条件。

通过`WHERE`子句添加筛选条件,仅返回普通表(即`relkind=r`)、非系统表(即`relname NOT LIKE 'pg_%'`和`relname NOT LIKE 'sql_%'`)和非特定表(即`relname NOT LIKE 'qrtz_%'`和`relname NOT LIKE 'information%'`)的信息。同时,还添加了一个额外的条件,即`reltuples=0`,用于筛选出行数为0的空表。

3. 查询结果。

最终,查询结果包含两列:`table_name`表示表名,`reltuples::bigint`表示行数(由于该列的数据类型为实型,需要通过显示转换为长整型)。这些列信息将被返回给客户端以供查看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值