在 postgres 中动态查询模式

问题描述 投票:0回答:1

如何在 pgadmin 中使用具有如下动态模式名称的 postgres sql 脚本来批量更改某个模式下的表所有权?

(declare?) schema = 'x'
ALTER [schema].table1 OWNER TO new_user;
ALTER [schema].table2 OWNER TO new_user;
ALTER [schema].table3 OWNER TO new_user;

我不想创建一个函数来执行此操作,因为它涉及向这些表(1,2,3)的原始用户授予该函数的执行访问权限,并且我不知道那些原始所有者是谁,并且我宁愿让他们用这个脚本自己改变所有权。

postgresql
1个回答
0
投票

您可以切换

search_path
,然后完全跳过
alter
语句中的架构名称:

SET search_path='x';
ALTER table1 OWNER TO new_user;
ALTER table2 OWNER TO new_user;
ALTER table3 OWNER TO new_user;

他们现在都指的是

x.table1
x.table2
x.table3

© www.soinside.com 2019 - 2024. All rights reserved.