sql - 在 Postgres 中查询以获取模式名称
问题描述
我需要一个逻辑/更清晰的查询来获取我创建的所有架构名称
select schema_name
from "information_schema"."schemata"
和
SELECT nspname
FROM pg_catalog.pg_namespace;
返回具有我不需要的系统创建模式的模式名称的超集。
我只想要我创建的模式名称。
解决方案
information_schema.schemata
尝试从pg_*
模式和information_schema
本身过滤:
SELECT * from information_schema.schemata
WHERE NOT schema_name LIKE 'pg_%' AND schema_name <> 'information_schema'
postgres
正如 Gordon 所建议的那样,排除 拥有的模式仅适用于postgres
不是任何其他模式的所有者而是系统模式的所有者的条件。如果您使用 user 创建了一个模式postgres
,它将被排除在结果集中。
推荐阅读
- github - 权限被拒绝(公钥)(尝试了所有其他解决方案)
- java - Selenium 驱动程序中的随机警报,我该如何处理?
- java - Spring Boot 错误:创建名称为“entityManagerFactory”的 bean 时出错
- excel - 在带有链接源内容的受保护工作表上自动调整行高
- java - 分层访问者模式和状态管理
- reactjs - 作为内容脚本注入时,材质 UI 样式完全损坏
- dns - 将 Nic(.ar) 域名委托给 vps 或域名主机
- scikit-learn - 逻辑回归 - class_weight 平衡与 dict 论点
- python - 使用 pd.merge_asof() 时索引丢失
- php - Magento 2:自动添加产品并运送到单独的地址