2010-02-23 2 views
0

database2의 함수에서 database1의 테이블을 업데이트하는 방법이 있습니까 (두 데이터베이스가 같은 서버에 있음)? 기본적으로 PostgreSQL에서 데이터베이스 업데이트를 교차시킵니다.PostgreSQL에서 database2의 함수에서 database1의 테이블을 업데이트하는 방법은 무엇입니까?

함수는 트리거에 의해 실행되지만 중요하지 않아야합니다.

- = DBLink를 사용하여 만들 수 있지만 가능한 원본 데이터베이스를 수정하고 싶습니다. 다른 옵션을 찾고 있어요.

답변

0

DBLink는 가능한 경우이를 수행하는 표준 방법입니다. PL/pgperl과 같은 절차 언어 (PL/pgsql 제외)가 설치되어 있다면, 그 언어를 사용하여 데이터베이스 2에 연결하고 update 문을 호출 할 수 있습니다. 또는 절차 언어를 사용하여 업데이트를 수행하기 위해 psql을 호출하는 쉘 스크립트를 호출 할 수 있습니다.

+0

다른 선택의 여지가없는 것 같습니다. 결론적으로 dblink.dll을 내 응용 프로그램과 함께 배포하면 결과적으로 좋지 않을 것입니다. 답변 해 주셔서 감사합니다. – kyrisu

1

두 데이터베이스를 동일한 PostgreSQL 데이터베이스에 넣을 수는 있지만 다른 스키마에 둘 수 있습니다.

이렇게하면 논리적으로 구분되어 이름 충돌이 없지만 스키마간에 개체에 액세스 할 수 있습니다.

0

당신이 찾고있는 것이 명확하지 않습니다.

당신은 PostgreSQL의 데이터베이스가 분리되어 있고 다른 데이터베이스에 직접 (의도적으로) 액세스 할 수 없다는 것을 알고 있습니다.

dblink 확장을 사용하면 두 데이터베이스 (동일하거나 다른 서버)를 연결할 수 있습니다.

dblink 확장 프로그램이 너무 침략 적이라는 것을 알았습니다 (두 데이터베이스를 병합하는 small_duck의 생각을 배제한 것 같습니다).

dblink가이 영역의 기본 선택 인 경우 dblink보다 더 단순하다고 생각하는 것이 확실하지 않습니다.

+0

내가하고있는 일은 postgresql을 사용하는 응용 프로그램의 확장 기능을 작성하는 것입니다. 가능한 한 응용 프로그램 db를 엉망으로 만들 정도로 dblink를 배포하지 않으려했습니다. 응답에 기초를 두는 것은 단지 길일뿐입니다 (확장의 작업량과 성능을 염두에 두는 것). – kyrisu

관련 문제