2012-01-04 2 views
0

우리는 제품에서 (java를 통해) mysql에서 postgresql로 데이터베이스를 마이그레이션 할 것입니다. 그래서 우리는 자바 애플리케이션에서 postgresql 쿼리로 mysql 쿼리를 변경해야한다. postgresql에서 테이블, 즉 databasename.tablename을 생성하는 방법. mysql의 경우 create table information.employee와 같은 테이블을 직접 생성 할 수 있습니다. 여기서 데이터베이스 이름은 "정보"이고 테이블 이름은 "직원"입니다. postgresql에서 동일한 쿼리를 수행 할 수 있습니까?PostgreSQL에서 "MySQL 교차 데이터베이스 참조"를 수행하는 방법

Google에서 교차 데이터베이스 참조가 불가능하다고 말하면서 검색했습니다. 도와주세요. pg_class 테이블에는 특정 데이터베이스의 테이블 이름이 포함되어 있습니다 (예 : 현명한 데이터베이스 및 테이블 관계는 다른 테이블에 저장 됨).

+0

질문을 명확히하십시오. MySQL의 구문을 PostgrSQL로 변환하는 방법에 대한 정보가 필요하면 MySQL 문이나 스펙 중 일부를 제공하십시오. MySQL이 데이터베이스를 호출하는 방법을 참조하는 방법에 대한 정보가 필요하면 MySQL에서 오늘 어떻게 수행하는지 예제를 제공하십시오. – zrvan

+0

안녕 zrvan, 답장을 보내 주셔서 감사합니다. 예, 나는 postgresql에 mysql 문을 변환하고 싶습니다. 예를 들어, mysql에는 n 개의 데이터베이스가 있습니다. 여기에는 dbname.tablename의 select *와 같은 액세스 규칙이 있습니다. postgresql에서 동일한 쿼리를 수행 할 수 있습니까? –

+0

prathika : 질문을 편집하고 실제 MySQL 쿼리 (또는 원본에 민감한 정보가있는 경우 충분히 유사한 문)를 추가하십시오. 테이블 생성 문과 실제 데이터 추출 쿼리에 대한 도움이 필요하면 두 가지 종류의 예제를 현재의 MySQL 폼에 표시되는 것과 같이 추가하십시오. – zrvan

답변

3

이것은 보통 데이터베이스가 아닌 스키마를 사용하여 이루어지며, 이는 MySQL이 어쨌든 그것을 구성하는 것과 다소 비슷합니다. 당신이 테이블을 만들 때

대신

create database xyz 

의 사용

create schema xyz 

, 그들을 만들 :

create table xyz.myTable 

당신이 psql 프로그램에서 볼로 검색 경로를 업데이트해야합니다 명령 줄 도구를 사용하거나 스키마를 명시 적으로 사용하지 않고 쿼리 할 수 ​​있습니다. 기본 스키마는 public이므로 스키마 이름없이 테이블을 생성하면 public으로 끝납니다. 아래와 같이 search_path를 수정하면 기본 스키마가 목록의 첫 xyz가됩니다.

set search_path=xyz,public,pg_catalog; 

이며 공백이 있으면 안됩니다. 당신도 사용자/역할을 위해 전 세계적으로 그것을 할 수 있습니다 :

또한
alter role webuser set search_path=xyz,public,pg_catalog; 

, 즉 PostgreSQL의 문자열 일치하는 경우 (이 하나가 많은 사람들을 잡는다) 기본적으로 민감 잊지 마세요. 각 스키마의 파일에 대해 다른 물리적 위치를 원할 경우, 테이블 공간을 사용하여이를 수행 할 수 있습니다. 만약 당신이 postgresql 문서 페이지를 살펴 본다면, 어떻게하는지에 대한 정보를 가지고있다. 꽤 쉽다.

+0

** 다른 스키마와 작업하기 위해 search_path를 ** 업데이트해야 할 필요는 없습니다 ** SQL 문에서 명시 적으로 지정할 수 있습니다 (필자가 선호하는 BTW 작성 방법). search_path를 업데이트하는 것이 편리합니다. –

+0

이것은 사실입니다. 그렇다고 할 필요는 없지만, \ d와 같은 것들에 대해 psql 명령 행에 관계가 나타나기를 원한다면, 보여줄 필요가있을 것입니다. 그리고 보여주지 않으면 꽤 혼란 스럽습니다. 위로, 그래서 나는 정말로 단지 그것을 위생을 위해하기를 권한다 - 나는 반영하기 위해 갱신 할 것이다. – PlexQ