복사 [BANIER]테이블[OIDS와 함께] 에서 'filename' |Stdin[[사용] Delimiters 'Delimiter' ]] [NULL으로 'NULL String' ]] 복사 [binary]테이블[OIDS와] 에게 'filename' |stdout[[사용] Delimiters 'Delimiter' ]] [NULL으로 'null 문자열' ]
필드 형식의 동작을 변경하여 모든 것을 강요합니다 데이터가 아닌 이진 형식으로 저장하거나 읽을 데이터 텍스트.
기존 테이블의 이름.
각각의 내부 고유 객체 ID (OID)를 복사합니다 열.
입력 또는 출력의 절대 유닉스 경로 이름 파일.
입력이 파이프 또는 터미널에서 나온 것을 지정합니다.
출력이 파이프 또는 터미널로 이동하는 것을 지정합니다.
입력 또는 출력을 구분하는 문자 전지.
널 값을 나타내는 문자열. 기본값은입니다 “\ n” (backslash-n) 예를 들어 빈 줄을 선호합니다.
참고 :사본에서 일치하는 데이터 항목 이 문자열은 널 값으로 저장되므로 사용한 것과 동일한 문자열을 사용해야합니다. 복사.
사본이 성공적으로 완료되었습니다.
오류에 명시된 이유로 사본이 실패했습니다. 메시지.
copy간에 데이터 이동Postgres표 및 표준 와이즈 토토 시스템 와이즈 토토.COPY지시PostgresOR에서 직접 읽기위한 백엔드 파일에 씁니다. 파일은 백엔드에 직접 표시되어야합니다 그리고 이름은 백엔드의 관점에서 지정되어야합니다. 만약에Stdin또는stdout지정되어 있으며 데이터가 흐릅니다 백엔드에 클라이언트 프론트 엔드.
바이너리 키워드는 모든 데이터를 저장/읽을 수 있도록 강요합니다. 텍스트가 아닌 이진 형식. 그것은 다소 빠릅니다 정상 복사 명령은 일반적으로 휴대용이 아니며 이 요소는 생성 된 와이즈 토토이 다소 큽니다 데이터 자체에 크게 의존합니다.
기본적으로 텍스트 사본은 탭 ( "\ t") 문자를 구분기. 구분자도 다른 사람으로 변경 될 수 있습니다 구분기를 사용한 키워드 문구가있는 단일 문자. 구분기와 일치하는 데이터 필드의 문자 캐릭터는 뒤 슬래시가 인용 될 것입니다.
당신이 있어야합니다액세스 선택값을 읽는 테이블COPY및 어느 하나액세스 삽입 또는 업데이트a 값을 삽입하는 테이블COPY. 백엔드는 또한 적절한 유닉스가 필요합니다 읽거나 쓴 와이즈 토토에 대한 권한COPY.
Delimiters를 사용한 키워드 문구는 단일을 지정합니다 열 사이의 모든 구분 제에 사용되는 문자. 만약에 여러 문자가 구분자 문자열에만 지정됩니다 첫 번째 문자가 사용됩니다.
팁 :혼동하지 마십시오copywithPSQL명령어\ copy.
COPY규칙이나 행위를 호출하지 않습니다 기본값에서. 그러나 트리거를 호출합니다.
copy첫 번째 작업을 중지합니다 오류. 이것은 A의 경우 문제를 일으키지 않아야합니다.복사, 그러나 대상 관계는 물론, 부분적으로 A를 수정하십시오.복사 에게. 진공청소에 사용해야합니다 실패한 사본 후에.
Postgres 백엔드의 현재 작업 디렉토리이기 때문에 일반적으로 사용자의 작업 디렉토리와 동일하지 않으며 파일에 복사 한 결과 "foo" (추가 경로 정보가 없으면) 예상치 못한 결과를 얻을 수 있습니다 순진한 사용자를위한 결과. 이 경우foo$ pgdata/foo. 일반적으로 전체 PathName AS 백엔드 서버 시스템에 사용되어야합니다. 복사 할 파일을 지정할 때.
인수로 사용되는 와이즈 토토COPY데이터베이스 서버 시스템에 오르거나 액세스 할 수 있습니다. 로컬 디스크 또는 네트워크 파일 시스템에 있습니다.
한 컴퓨터에서 다른 기계로 TCP/IP 연결이있을 때 사용 중이며 대상 파일이 지정되면 대상 파일은 다음과 같습니다. 백엔드가 실행중인 기계에 작성된 사용자의 기계.
언제복사이진 옵션, 생성 된 파일에는 각 행 (인스턴스)이 있습니다. 각 열 (속성)이 구분자 문자. 내장 된 구분자 문자가 될 것입니다 백 슬래시 문자 ( "\")가 앞서 있습니다. 속성 값 자체는 출력 기능에 의해 생성 된 문자열입니다 각 속성 유형과 관련이 있습니다. a의 출력 함수 유형은 백 슬래시 문자를 생성하지 않아야합니다. 이것 처리됩니다.COPY자체.
각 인스턴스의 실제 형식은입니다.
<아트 1 <분리기 <artt2 <분리기 ... <분리기 <아트n <newlineOID가있는 경우 OID가 선의 시작 부분에 배치됩니다. 지정됩니다.
ifCOPY출력을 전송합니다 파일 대신 표준 출력이 BackSlash ( "\") 및 기간 ( ".") 다음 즉시 a Newline, 별도의 줄에, 완료되면. 마찬가지로COPY표준 입력에서 읽고 있습니다 백 슬래시 ( "\")와 기간 ( ".")과 Newline, 라인의 첫 세 문자로서 파일 끝. 하지만,COPY의지 진정한 eof가 인 경우 종료 (백엔드 자체 뒤에) 이 특수 파일 패턴 이전에 발생합니다 설립하다.
Backslash 캐릭터에는 다른 특별한 의미가 있습니다. 에이 문자 그대로의 백 슬래시 문자는 두 개의 연속으로 표시됩니다 백 슬래시 ( "\\"). 문자 그대로의 탭 문자는 a로 표시됩니다 백 슬래시와 탭. 문자 그대로의 신약 캐릭터가 표시됩니다 백 슬래시와 새로운 라인으로. 텍스트 데이터를로드 할 때 생성Postgres, 당신은 할 것입니다 백 슬래시 문자 ( "\")를 변환해야합니다 이중 백 슬래시 ( "\\")가로드되도록합니다 제대로.
의 경우BINAGE COPY, 첫 번째 와이즈 토토의 4 바이트는 인스턴스 수입니다. 와이즈 토토. 이 숫자가 0이면복사 이진와이즈 토토 끝이 발생할 때까지 명령이 읽습니다. 그렇지 않으면이 인스턴스가 발생하면 읽기가 중단됩니다. 읽었습니다. 와이즈 토토의 나머지 데이터는 무시됩니다.
파일의 각 인스턴스의 형식은 다음과 같습니다. 메모 이 형식을 따라야한다정확히. 서명되지 않은 4 바이트 정수 수량 아래 표에서 UINT32라고합니다.
표 19-1. 이진 사본 와이즈 토토의 내용
시작시 와이즈 토토의 | |
UINT32 | 튜플 수 |
각각 튜플 | |
UINT32 | 튜플의 총 길이 데이터 |
UINT32 | OID (지정된 경우) |
UINT32 | null 수 속성 |
[uint32, ..., uint32] | 속성 번호 속성, 0 계산 |
- | <튜플 데이터 |
SUN-3S에서 2 바이트 속성은 2 바이트에 정렬됩니다 경계 및 모든 더 큰 속성은 4 바이트에 정렬됩니다 경계. 문자 속성은 단일 바이트에서 정렬됩니다 경계. 대부분의 다른 기계에서 모든 속성은보다 큰 속성입니다 1 바이트는 4 바이트 경계에서 정렬됩니다. 변수에 유의하십시오 길이 속성은 속성의 길이가 앞에 있습니다. 배열은 단순히 배열 요소의 연속 스트림입니다 유형.
다음 예제는 표준 출력에 테이블을 복사합니다. 필드 구분 기자로서 수직 막대 ( "|") :
국가 복사stdoutDelimiters 사용 | ';
UNIX 파일에서 데이터를 테이블 "국가"로 복사하려면 :
'/usr1/proj/bray/sql/country_data';에서 나온 국가 복사 국가
테이블에 복사하는 데 적합한 데이터 샘플이 있습니다. 에서Stdin(따라서 종료가 있습니다 마지막 줄의 시퀀스) :
AF 아프가니스탄 알 알바니아 DZ 알제리 ... ZM 잠비아 ZW 짐바브웨 \.
동일한 데이터, Linux/i586의 이진 형식의 출력 기계. UNIX를 통해 필터링 한 후 데이터가 표시됩니다 공익사업OD -C. 테이블에는 세 개의 필드가 있습니다. 첫 번째는char (2)그리고 두 번째는텍스트. 모든 행에는 널 값이 있습니다 세 번째 필드에서. 어떻게char (2)필드에는 널이 4 바이트로 채워져 있습니다 텍스트 필드는 길이가 앞서 있습니다.
355 \ 0 \ 0 \ 0 027 \ 0 \ 0 \ 0 001 \ 0 \ 0 \ 0 002 \ 0 \ 0 \ 0 006 \ 0 \ 0 \ 0 A F \ 0 \ 0 017 \ 0 \ 0 \ 0 A F G H A N I S T A N 023 \ 0 \ 0 \ 0 001 \ 0 \ 0 \ 0 002 \ 0 \ 0 \ 0 006 \ 0 \ 0 \ 0 a l \ 0 \ 0 \ V \ 0 \ 0 \ 0 a L B A N I A 023 \ 0 \ 0 \ 0 001 \ 0 \ 0 \ 0 002 \ 0 \ 0 \ 0 006 \ 0 \ 0 \ 0 \ 0 D Z \ 0 \ 0 \ V \ 0 \ 0 \ 0 a l g e r i a ... \ n \ 0 \ 0 \ 0 Z A M B I A 024 \ 0 \ 0 \ 0 001 \ 0 \ 0 \ 0 002 \ 0 \ 0 \ 0 006 \ 0 \ 0 \ 0 Z W \ 0 \ 0 \ f \ 0 \ 0 \ 0 Z I M B A B W E
없음COPY진술 SQL92.