更改所有表 postgres 设置所有者
Alter all tables postgres set owner
我需要一个 postgresql 语句通过 public 模式(所有 tables)运行 并更新所有者。我知道手动命令是 ALTER TABLE public.<table_name> OWNER TO <username>;
但是我不确定如何将它放入一个 script/format 中,它将遍历每个 table 并更新所有者?
这是针对 postgres 9.6 数据库的(在测试数据库上它将是 运行)。
谢谢
使用 psql
和 运行
连接到数据库
SELECT format(
'ALTER TABLE public.%I OWNER TO user_name',
table_name
)
FROM information_schema.tables
WHERE table_schema = 'public'
AND table_type = 'BASE TABLE' \gexec
\gexec
会将查询结果的每一行作为一条语句执行。
升级。
我需要一个 postgresql 语句通过 public 模式(所有 tables)运行 并更新所有者。我知道手动命令是 ALTER TABLE public.<table_name> OWNER TO <username>;
但是我不确定如何将它放入一个 script/format 中,它将遍历每个 table 并更新所有者?
这是针对 postgres 9.6 数据库的(在测试数据库上它将是 运行)。
谢谢
使用 psql
和 运行
SELECT format(
'ALTER TABLE public.%I OWNER TO user_name',
table_name
)
FROM information_schema.tables
WHERE table_schema = 'public'
AND table_type = 'BASE TABLE' \gexec
\gexec
会将查询结果的每一行作为一条语句执行。
升级。