2022年3月1日
pg跨模式查询,不用加前缀
修改模式的所属即可
ALTER TABLE “xxx”.”table” OWNER TO “zzz”;
show search_path ; 我可以设置当前会话的search_path: set search_path = "$user", public,postgis; 同样,我可以使用以下命令永久设置给定数据库的search_path: alter database database set search_path = "$user",postgis ; 我可以使用以下内容为给定角色(用户)永久设置search_path: alter role username set search_path = "$user",postgis ;
您可以在目录表 pg_db_role_setting中找到角色和数据库的配置设置. 此查询检索给定角色或数据库的任何设置: SELECT r.rolname,d.datname,rs.setconfig FROM pg_db_role_setting rs left JOIN pg_roles r ON r.oID = rs.setrole left JOIN pg_database d ON d.oID = rs.setdatabase WHERE r.rolname = 'username' OR d.datname = 'database';
要取消设置角色或数据库的任何设置 – 此特定示例中的search_path: ALTER RolE username reset search_path; 要么: ALTER DATABASE database reset search_path; 要么 ALTER RolE myrole in DATABASE mydb reset search_path; 切勿手动操作系统目录(pg_catalog.*)中的数据.按照ALTER ROLE和ALTER DATABASE手册中的说明使用DDL命令.实际上,reset命令从pg_db_role_setting中删除一行,允许基本设置再次生效.我不会称之为复杂.