跳转到主要内容

pg_synonym

随目标 DDL 同步的表与视图别名。

概览

扩展包名版本分类许可证语言
pg_synonym1.0SIMPostgreSQLSQL
ID扩展名BinLibLoadCreateTrustReloc模式
9220pg_synonym否是否是否否synonym

Release 1.0.0 installs SQL 1.0. Requires PG15+ and superuser installation for event triggers; no preload. Invoker-security views retain target privileges/RLS; manual synonym view edits can break synchronization.

版本

类型仓库版本PG 大版本包名依赖
EXTPIGSTY1.01817161514pg_synonym-
RPMPIGSTY1.0.01817161514pg_synonym_$v-
DEBPIGSTY1.0.01817161514postgresql-$v-pg-synonym-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64N/A
el8.aarch64N/A
el9.x86_64N/A
el9.aarch64N/A
el10.x86_64N/A
el10.aarch64N/A
d12.x86_64N/A
d12.aarch64
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
N/A
d13.x86_64
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
N/A
d13.aarch64
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
N/A
u22.x86_64
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
N/A
u22.aarch64
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
N/A
u24.x86_64
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
N/A
u24.aarch64
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
N/A
u26.x86_64N/A
u26.aarch64
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
N/A

构建

您可以使用 pig build 命令构建 pg_synonym 扩展的 RPM / DEB 包:

pig build pkg pg_synonym         # 构建 RPM / DEB 包

安装

您可以直接安装 pg_synonym 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:

pig repo add pgsql -u          # 添加仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

安装
pig install pg_synonym;          # 当前活跃 PG 版本安装
pig
pig ext install -y pg_synonym -v 18  # PG 18
pig ext install -y pg_synonym -v 17  # PG 17
pig ext install -y pg_synonym -v 16  # PG 16
pig ext install -y pg_synonym -v 15  # PG 15
dnf
dnf install -y pg_synonym_18       # PG 18
dnf install -y pg_synonym_17       # PG 17
dnf install -y pg_synonym_16       # PG 16
dnf install -y pg_synonym_15       # PG 15
apt
apt install -y postgresql-18-pg-synonym   # PG 18
apt install -y postgresql-17-pg-synonym   # PG 17
apt install -y postgresql-16-pg-synonym   # PG 16
apt install -y postgresql-15-pg-synonym   # PG 15

创建扩展:

CREATE EXTENSION pg_synonym;

用法

来源:

pg_synonym 使用按调用者权限执行的视图维护表与视图别名。发行版 1.0.0 安装的扩展版本为 1.0;要求 PostgreSQL 15 或更高版本,安装需要超级用户。不需要预加载或重启服务器。

核心流程

CREATE EXTENSION pg_synonym;
CREATE SCHEMA app;
CREATE SCHEMA erp;
CREATE TABLE erp.customers (id bigint PRIMARY KEY, name text);
SELECT synonym.create('app.customer', 'erp.customers');
INSERT INTO app.customer VALUES (1, 'Ada');
SELECT * FROM app.customer;
SELECT * FROM synonym.list;

全部辅助接口位于 synonym 模式中。

操作与权限

synonym.create 可以在目标尚不存在时登记别名,随后由事件触发器完成绑定。目标重命名时按对象身份跟随,受支持的列变更会重建别名。synonym.refresh() 用于手工协调状态。synonym.drop 删除单个别名,可指定 if_exists => true。

通过别名访问仍受目标权限和行级安全策略约束。创建别名需要在别名所在模式中创建对象的权限,以及目标模式的使用权限。删除别名需要所有权、相应角色成员身份或超级用户权限。

使用边界

目标可以是普通表、分区表、外部表、视图与物化视图。不支持别名指向别名、跨数据库对象、函数或序列。导出数据应通过查询进行;别名不能替代目标对象的 DDL 或截断操作。通过视图执行合并需要 PostgreSQL 17 或更高版本。

手工修改别名视图可能破坏同步。依赖该别名的其他视图可能阻止破坏性的目标变更,重建别名也可能重置直接授予它的权限。删除扩展会保留普通别名视图,需另行安排清理。

这个页面对您有帮助吗?