PostgreSQL에 대한 새로운 기능입니다. 실제로 나는 이전에 MySQL을 사용하고 있었지만 postgreSQL을 사용하고 POC를 수행해야하는 특정 프로젝트의 특별한 이유 때문에.PostgreSQL COPY FROM 명령을 사용하는 MySQL LOAD DATA INFILE
이제 문제는 다음과 같습니다. 파일 내용을 데이터베이스 테이블로로드하기 위해 MySQL LOAD DATA INFILE 명령을 사용하고있었습니다.
내 테이블 구조는 다음과 같습니다 테이블 이름 : MSISDN 테이블 열 이름 : ID (기본 키 - auto_generated), JOB_ID, MSISDN, 지역, 상태
하지만 내 입력 텍스트 파일 (rawBase.txt)이 필요하다 아래 열만 : MSISDN, REGION
그래서 위의 2 열을 초기 JOB_ID 및 STATUS로로드하려면 아래 명령을 사용했습니다.
LOAD DATA INFILE 'D:\\project\\rawBase.txt' INTO TABLE MSISDN
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(MSISDN,REGION)
SET JOB_ID = 'XYZ1374147779999', STATUS = 0;
당신은 내가 입력 텍스트 파일에 (JOB_ID와 STATUS)하지 않는 열에 대해 특정 초기 값을 설정할 수 있습니다 LOAD 데이터 INFILE 명령에서 사용할 수있는 옵션이 있다는 것을 볼 수
. PostgreSQL을의 경우 NOW ,, 나는 같은 일이 일어날하고자합니다.
이 명령을 사용할 수 COPY의 같은 종류는 아래와 같이 로부터도 : (JOB_ID와 STATUS)
COPY MSISDN FROM 'D:\\project\\rawBase.txt' WITH DELIMITER AS ','
하지만 존재하지 않는 나머지 컬럼에 대한 특정 초기 값을 설정할 수 없습니다입니다 내 입력 텍스트 파일에. 나는 이것을하기의 유익한보기를 얻고 있지 않다.
가능한 경우 몇 가지 제안을하십시오.
감사합니다, 샌디 열 목록에
임시 테이블에 데이터를로드하고 임시 테이블에서 'INSERT ... SELECT ...'를 사용하여 실제 테이블로 복사 할 수 있습니까? –
lgor .. 덧글 주셔서 감사하지만 파일 복사본은 매우 큰 레코드입니다 따라서 임시 테이블을 사용하여 시간이 많이 소요되는 작업이 될 것입니다. – Sandy