Postgresql 스키마 경로 영구 설정
매번 스키마 도트 테이블을 지정하지 않도록 Postgres에서 스키마 경로를 설정해야 합니다. schema2.table스키마 경로 설정:
SET SCHEMA PATH a,b,c
쿼리 창을 닫은 후 경로 변수가 기본값으로 다시 설정됩니다.
어떻게 하면 영구적으로 만들 수 있습니까?
(서버에 대한 관리자 권한이 없는 경우)
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;
또는 role+database 레벨(이 점을 지적해 준 Chris에게 감사합니다!):
ALTER ROLE <role_name> IN DATABASE <database_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;
특정 데이터베이스에서 사용자의 검색 경로를 설정합니다.
컴퓨터에서 하나의 데이터베이스로만 작업하는 경우 기본 스키마를 저장할 수 있습니다.~/.psqlrc:
set search_path to a,b,c
자세한 내용은 여기를 참조하십시오.기본 연결 정보를 저장하여 간단히 실행하려면psql매번 환경 변수를 사용해야 합니다.
export PGHOST=localhost
export PGPORT=5432
export PGDATABASE=database
export PGUSER=username
언급URL : https://stackoverflow.com/questions/2875610/permanently-set-postgresql-schema-path
'programing' 카테고리의 다른 글
| 파일 중간에 특정 행을 표시하는 빠른 unix 명령? (0) | 2023.05.04 |
|---|---|
| 동일한 문서의 필드가 있는 Mongodb 쿼리 (0) | 2023.05.04 |
| ASP에서 사용자 정의 오류 페이지를 작동시키는 방법.NET MVC 4 (0) | 2023.05.04 |
| postgres에서 중복 어레이 값 제거 (0) | 2023.05.04 |
| bash 셸 스크립트에 파일을 포함하는 방법 (0) | 2023.05.04 |