繁体   English   中英

PostgreSQL 检查匹配正则表达式的表数

[英]PostgreSQL check number of tables that match regex

有没有一种好方法可以检查数据库中匹配特定格式的现有表的数量?

例如,我正在寻找任何以'rangtable'开头的表名,例如'rangtable1''rangtable2''rangtable3' ....etc,在这种情况下,它返回三个。

我不确定是否有需要在 SQL 领域中搜索的查询或术语。 我想出的最好方法是做一个完整的表查询,然后做一个 fetchall(我使用 Python 和 PostgreSQL),而不是尝试做一些与结果匹配的正则表达式。

有没有更好的办法?

您可以查询Postgres INFORMATION_SCHEMA.TABLES视图

SELECT COUNT(*) AS cnt 
FROM INFORMATION_SCHEMA.TABLES 
WHERE table_name LIKE 'rangtable%';

如果您需要匹配正则表达式(您提供的简单模式不是这种情况),您可以使用运算符SIMILAR TO ,或者更好的 POSIX 运算符~

SELECT COUNT(*) AS cnt 
FROM INFORMATION_SCHEMA.TABLES 
WHERE table_name ~ '^rangtable';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM