PostgreSql 批量修改数据库下所有表 owner

发布时间 2023-06-26 14:34:43作者: 章怀柔
--格式化保存到 change.sql 脚本
\pset footer
\pset t
\o change.sql

--用户名、nspname、relkind 根据实际需求自行选择
select 'alter table ' || '"' || nsp.nspname || '"' || '.' || '"' || cls.relname || '"' || ' owner to 用户名;'
from pg_catalog.pg_class cls,
	pg_catalog.pg_namespace nsp
where nsp.nspname in('oracle','mysql','public')
	and cls.relnamespace = nsp.oid
	and cls.relkind in ('r','S','v')
order by nsp.nspname,
	cls.relname;

--执行脚本
\i change.sql

  

relkind 字段类型说明:

  • r = 普通表
  • i = 索引
  • S = 序列
  • t = TOAST表
  • v = 视图
  • m = 物化视图
  • c = 组合类型
  • f = 外部表
  • p = 分区表
  • I = 分区索引