JDBC에서 postgres에 접속할 때 스키마를 지정할 수 있습니까?
가능합니까?접속 URL에서 지정할 수 있습니까?어떻게 하는 거야?
이미 답변이 끝난 것은 알고 있습니다만, 액상 베이스 명령줄에 사용할 스키마를 지정하려고 하다가 같은 문제가 발생했습니다.
JDBC v9.4의 Update As는 다음과 같이 새로운 currentSchema 파라미터로 URL을 지정할 수 있습니다.
jdbc:postgresql://localhost:5432/mydatabase?currentSchema=myschema
이전 패치에 따라 표시됩니다.
제안된 URL은 다음과 같습니다.
jdbc:postgresql://localhost:5432/mydatabase?searchpath=myschema
버전 9.4 에서는,currentSchema
파라미터를 지정합니다.
예를 들어 다음과 같습니다.
jdbc:postgresql://localhost:5432/mydatabase?currentSchema=myschema
사용자 환경에서 가능한 경우 사용자의 기본 스키마를 원하는 스키마로 설정할 수도 있습니다.
ALTER USER user_name SET search_path to 'schema'
연결 문자열에 스키마를 지정하는 방법은 없다고 생각합니다.실행이 필요한 것 같습니다.
set search_path to 'schema'
스키마를 지정하기 위해 연결이 확립된 후.
DataSource
–setCurrentSchema
구현을 인스턴스화할 때 현재/기본 스키마를 설정하는 방법을 찾습니다.
예를 들어 class call 입니다.
org.postgresql.ds.PGSimpleDataSource dataSource = new org.postgresql.ds.PGSimpleDataSource ( );
dataSource.setServerName ( "localhost" );
dataSource.setDatabaseName ( "your_db_here_" );
dataSource.setPortNumber ( 5432 );
dataSource.setUser ( "postgres" );
dataSource.setPassword ( "your_password_here" );
dataSource.setCurrentSchema ( "your_schema_name_here_" ); // <----------
스키마를 지정하지 않은 채로 두면 Postgres는 기본적으로 다음과 같은 이름의 스키마가 됩니다.public
사용할 수 있습니다.매뉴얼 섹션 5.9.2를 참조퍼블릭 스키마모자 설명서에 대한 견적을 내려면
이전 섹션에서는 스키마 이름을 지정하지 않고 테이블을 만들었습니다.기본적으로 이러한 테이블(및 기타 개체)은 "public"이라는 이름의 스키마에 자동으로 추가됩니다.모든 새 데이터베이스에는 이러한 스키마가 포함됩니다.
패치 업데이트 버전을 Postgre에 제출했습니다.몇 년 전에 이 기능을 활성화하기 위한 SQL JDBC 드라이버입니다.PostreSQL JDBC 드라이버를 사용하려면 소스(패치에 추가한 후)에서 빌드해야 합니다.
http://archives.postgresql.org/pgsql-jdbc/2008-07/msg00012.php
다른 스테이트먼트에 사용할 수 있는 것을 잊지 말아 주세요.
SET SCHEMA 'value'는 SET search_path TO 값의 별칭입니다.이 구문을 사용하여 지정할 수 있는 스키마는 1개뿐입니다.
또한 JDBC 드라이버에서는 9.4 이전 버전일 수 있으므로 이 메서드는 지원됩니다.
in」의 「」에서는, 「sql」의 「Go」를 합니다. (를 적어주세요) (::search_path
( ) :
postgres://user:password@host/dbname?sslmode=disable&search_path=schema
언급URL : https://stackoverflow.com/questions/4168689/is-it-possible-to-specify-the-schema-when-connecting-to-postgres-with-jdbc
'source' 카테고리의 다른 글
표면과 텍스처의 차이(SDL/일반) (0) | 2022.08.10 |
---|---|
Vuejs의 window.scrollY 변경 내용을 확인합니다. (0) | 2022.08.10 |
정수의 최대값 (0) | 2022.08.10 |
vue js의 로그인 구성 요소에서 사용자 상태를 업데이트하는 방법 (0) | 2022.08.10 |
C 입사 면접 - 캐스팅 및 비교 (0) | 2022.08.10 |