meta
标准化,更友好的PostgreSQL系统目录视图
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_meta | 0.4.0 | STAT | BSD 2-Clause | SQL |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 6430 | meta | 否 | 否 | 否 | 是 | 否 | 否 | meta |
| 相关扩展 | pg_profile pg_tracing pg_show_plans pg_stat_kcache pg_stat_monitor pg_qualstats pg_store_plans pg_track_settings |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.4.0 | 1817161514 | pg_meta | - |
| RPM | PIGSTY | 0.4.0 | 1817161514 | pg_meta_$v | - |
| DEB | PIGSTY | 0.4.0 | 1817161514 | postgresql-$v-pg-meta | - |
构建
您可以使用 pig build 命令构建 pg_meta 扩展的 RPM / DEB 包:
pig build pkg pg_meta # 构建 RPM / DEB 包
安装
您可以直接安装 pg_meta 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install pg_meta; # 当前活跃 PG 版本安装
pig ext install -y pg_meta -v 18 # PG 18
pig ext install -y pg_meta -v 17 # PG 17
pig ext install -y pg_meta -v 16 # PG 16
pig ext install -y pg_meta -v 15 # PG 15
pig ext install -y pg_meta -v 14 # PG 14
dnf install -y pg_meta_18 # PG 18
dnf install -y pg_meta_17 # PG 17
dnf install -y pg_meta_16 # PG 16
dnf install -y pg_meta_15 # PG 15
dnf install -y pg_meta_14 # PG 14
apt install -y postgresql-18-pg-meta # PG 18
apt install -y postgresql-17-pg-meta # PG 17
apt install -y postgresql-16-pg-meta # PG 16
apt install -y postgresql-15-pg-meta # PG 15
apt install -y postgresql-14-pg-meta # PG 14
创建扩展:
CREATE EXTENSION meta;
用法
meta 提供一套规范化、易于理解的系统目录视图,使用通用的视图名和列名,构建于 pg_catalog 和 information_schema 之上。
系统目录视图
该扩展在 meta 模式下创建约 30 个视图:
-- 列出所有表
SELECT * FROM meta.table;
-- 列出所有列
SELECT * FROM meta.column;
-- 列出所有视图
SELECT * FROM meta.view;
-- 列出模式
SELECT * FROM meta.schema;
-- 列出函数
SELECT * FROM meta.function;
-- 列出扩展
SELECT * FROM meta.extension;
-- 列出触发器
SELECT * FROM meta.trigger;
-- 列出外键
SELECT * FROM meta.foreign_key;
-- 列出约束
SELECT * FROM meta.constraint_check;
SELECT * FROM meta.constraint_unique;
-- 列出类型
SELECT * FROM meta.type;
-- 列出角色
SELECT * FROM meta.role;
-- 列出序列
SELECT * FROM meta.sequence;
-- 列出运算符
SELECT * FROM meta.operator;
-- 列出策略
SELECT * FROM meta.policy;
可用视图
cast、column、connection、constraint_check、constraint_unique、extension、foreign_column、foreign_data_wrapper、foreign_key、foreign_server、foreign_table、function、function_parameter、operator、policy、policy_role、relation、relation_column、role、role_inheritance、schema、sequence、table、table_privilege、trigger、type、view
元标识符
该扩展提供复合类型作为"软"主键,通过名称(而非 OID)来标识 PostgreSQL 对象(表、列、类型等)。
目录触发器(可选)
通过可选的 meta_triggers 扩展,视图变为可更新,从而支持通过 DML 执行 DDL:
-- 通过 INSERT 创建表
INSERT INTO meta.table (schema_name, name) VALUES ('public', 'foo');