답변:
(그리고 서버에 대한 관리자 액세스 권한이없는 경우)
ALTER ROLE <your_login_role> SET search_path TO a,b,c;
알아야 할 두 가지 중요한 사항 :
a, b, c
하는 순서는 스키마가 테이블을 찾는 순서이기도하기 때문에 중요합니다. 따라서 기본값 중 둘 이상의 스키마에 동일한 테이블 이름이 있으면 모호성이 없으며 서버는 항상에 대해 지정한 첫 번째 스키마의 테이블을 사용합니다 search_path
.search_path
데이터베이스 레벨에서 기본값 을 설정할 수 있습니다 .
ALTER DATABASE <database_name> SET search_path TO schema1,schema2;
또는 사용자 또는 역할 수준에서 :
ALTER ROLE <role_name> SET search_path TO schema1,schema2;
또는 모든 데이터베이스에 공통 기본 스키마가있는 경우 search_path 옵션을 사용하여 구성 파일에서 시스템 전체 기본값을 설정할 수 있습니다.
데이터베이스가이 숨겨진 "템플릿"라는 이름의 데이터베이스에서 기본적으로 만들어집니다 만들 때 template1를 , 당신은 미래에 생성 된 모든 데이터베이스에 대한 새 기본 검색 경로를 지정하려면 해당 데이터베이스를 변경할 수 있습니다. 다른 템플릿 데이터베이스 CREATE DATABASE <database_name> TEMPLATE <template_name>
를 만들고 데이터베이스를 만드는 데 사용할 수도 있습니다 .
조쉬는 맞지만 한 가지 변형을 생략했습니다.
ALTER ROLE <role_name> IN DATABASE <db_name> SET search_path TO schema1,schema2;
하나의 특정 데이터베이스에서 사용자의 검색 경로를 설정하십시오.