텍스트 파일로 되어있는 테이블과 필드값을 일일이 만들지 않고 한꺼번에 PostgreSQL로 가져올려고 합니다. 어떻게 해야 하는지 알려주세요 방법이 있나요?
코딩부분을 어떻게 하는지 궁금하네요.
"테이블과 필드값을 일일이 만들지 않고 한꺼번에 PostgreSQL로 가져올려고"
이 말이 정확하게 무슨 의미인지 잘 모르겠네요. 일일이 한줄씩 읽어서 INSERT한다는 의미인지... ^^;
대량의 자료를 가져올 경우 pg_dump/restore를 사용하게 되는데, pg_dump로 만들어지지 않은 경우는 경험상 간단한 스크립트를 작성해서 pg_restore에서 인식 가능하게끔 만들어 주면 잘 되더군요..
예를 들어 다음과 같은 데이터가 있을 경우
A 1 2 3 4 5 6
B 7 8 9 10 11 12
간단한 스크립트 조작으로
COPY table_name (columns....) FROM stdin;
\.
이렇게 만들어 주고 psql 로 redirect하면 하나씩 INSERT하는 것 보다는 아주 편합니다. 물론 하나씩 넣으면서 데이터 검증을 해야하는 것이라면 이 방법은 사용 못하겠지만요...
$ data_trainsform data_file | psql -Uuser dbname
답변 감사합니다.
답변해 주신 의미가 맞아요~~ㅋ
파일로 부터 insert 하려면
psql로 접속하셔서 아래와 같이 하면 될꺼에요
copy region(테이블이름) from 'TPC-H/tpc_gen/region.tbl'(파일이름) using delimiters '|'(구분자);
export할려면 반대로
copy 테이블이름 to 파일이름 using delimiters '|';
이런식으로 하면 될거 에요