문제

현재 내장 모드에서 파이어 버드를 사용하여 하드 드라이브의 파일로 저장된 비교적 간단한 데이터베이스에 연결하는 응용 프로그램이 있습니다. PostgreSQL을 사용하여 똑같은 일을하기 위해 전환하고 싶습니다 (예, 과잉이라는 것을 알고 있습니다). PostgreSQL은 임베디드 모드에서 작동 할 수 없으며 괜찮습니다. 서버 프로세스를 실행할 수 있으며 괜찮습니다.

나는 이것을 달성 할 연결 문자열을 알아 내려고하지만 실패했습니다. 다음에 대한 변형을 시도했습니다.

jdbc : postgresql : c : mydb.fdb
jdbc : postgresql : // c : mydb.fdb
jdbc : postgresql : // localhost : [port] /c: mydb.fdb

그러나 아무것도 효과가없는 것 같습니다. Postgresql 지도 이 경우에는 예를 포함하지 마십시오. 이것이 가능합니까?

도움이 되었습니까?

해결책

Postgres 데이터베이스는 단일 파일이 아닙니다. 데이터베이스의 디렉토리 내부에는 각 테이블에 대해 하나의 파일과 데이터 디렉토리의 각 색인이 있습니다. 모든 파일은 db / table / index의 객체 ID (OID)로 명명됩니다.

JDBC URL은 특정 파일이 아닌 데이터베이스 이름을 가리 킵니다.

"메모리처럼 행동하는 디스크"라면 DB가 프로그램의 수명에 대해서만 존재한다는 것을 의미한다면 프로그램 시작시 DB를 생성하고 프로그램 출구에서 삭제할 수없는 이유는 없습니다. 이는 INIT-DB 프로그램을 통해 데이터 DIR을 생성하지 않고 DB를 만들기위한 DDL 일뿐입니다. 기본 'Postgres'DB에 연결하고 DB를 작성 한 다음 연결할 수 있습니다.

다른 팁

당신은 그것을 속일 수 있습니다. Unix 유사 시스템에서 PostgreSQL을 실행중인 경우 Ramdisk를 생성하여 데이터베이스 스토리지에 사용할 수 있어야합니다. 여기에 꽤 좋은 단계가 있습니다 Linux의 Ramdisk 가이드.

그러나 일반적으로 RAM 유형의 애플리케이션에서 SQL DB에 SQLITE를 사용하는 것이 좋습니다.

Firebird 2.1 이후에는 데이터베이스 연결 기간 동안 만 존재하는 글로벌 임시 테이블을 지원합니다.

구문은 글로벌 임시 테이블을 만드는 것과 같은 것입니다 ... 커밋 보존 행

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top