이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 롤 토토버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

토토 커뮤니티

이름

COPY -- 파일과 파일 간에 데이터를 토토 커뮤니티합니다. 테이블

시놉시스

토토 커뮤니티테이블 이름 [ ( [, ...] ) ]
     '에서파일 이름' | 표준 
    [ [ 와 ] 
          [ 바이너리 ] 
          [ 오이즈 ]
          [ 구분 기호 [ AS ] '구분자' ]
          [ NULL [ 그대로 ] '널 문자열10737_10751테이블 이름 [ ( [, ...] ) ]
    '에파일 이름' | 표준 출력 
    [ [ 와 ] 
          [ 바이너리 ]
          [ 오이즈 ]
          [ 구분 기호 [ AS ] '구분자' ]
          [ NULL [ 그대로 ] '널 문자열' ] ]

설명

토토 커뮤니티사이에 데이터 이동포스트그레SQL테이블 및 표준 파일 시스템 파일.토토 커뮤니티 대상다음의 내용을 토토 커뮤니티합니다. 테이블파일, 동안다음에서 토토 커뮤니티데이터 토토 커뮤니티from파일을 테이블에 추가(추가 이미 테이블에 있는 데이터로 데이터를 이동합니다.

열 목록이 지정되면,토토 커뮤니티지정된 위치의 데이터만 토토 커뮤니티합니다. 파일과의 열. 해당 항목에 열이 있는 경우 열 목록에 없는 테이블,토토 커뮤니티 보낸사람해당 열에 기본값을 삽입합니다.

토토 커뮤니티파일 이름이 있는 명령은포스트그레SQL서버에서 직접 파일을 읽거나 파일에 씁니다. 파일은 다음 사용자가 액세스할 수 있어야 합니다. 서버와 이름은 사용자의 관점에서 지정되어야 합니다. 서버. 언제STDIN또는STDOUT이 지정되면 데이터는 다음을 통해 전송됩니다. 클라이언트와 서버 간의 연결.

매개변수

테이블 이름

기존 이름(선택적으로 스키마 한정) 테이블.

토토 커뮤니티할 열의 선택적 목록입니다. 열이 없는 경우 목록이 지정되면 모든 열이 사용됩니다.

파일 이름

입력 또는 출력 파일의 절대 경로 이름.

STDIN

입력이 클라이언트에서 나오도록 지정합니다. 신청합니다.

STDOUT

출력이 클라이언트로 이동하도록 지정합니다. 신청합니다.

바이너리

모든 데이터를 바이너리 형식으로 저장하거나 읽습니다. 텍스트로보다는. 다음을 지정할 수 없습니다.DELIMITER또는NULL바이너리 모드의 옵션.

OIDS

각 행의 OID 토토 커뮤니티를 지정합니다. (오류는 if 발생OIDS다음에 대해 지정되었습니다. OID가 없는 테이블입니다.)

구분자

각 열을 구분하는 단일 문자 파일의 행(줄)입니다. 기본값은 탭 문자입니다.

널 문자열

널 값을 나타내는 문자열입니다. 기본값은\N(백슬래시-N). 당신은 선호할 수도 있습니다 예를 들어 빈 문자열입니다.

참고:토토 커뮤니티 보낸사람, 이 문자열과 일치하는 모든 데이터 항목은 null 값으로 저장되므로 다음 사항을 확인해야 합니다. 에서 사용한 것과 동일한 문자열을 사용합니다.토토 커뮤니티 대상.

참고

토토 커뮤니티일반에서만 사용할 수 있습니다. 뷰가 아닌 테이블입니다.

바이너리키워드로 인해 모든 데이터가 발생함 텍스트가 아닌 바이너리 형식으로 저장/읽혀집니다. 그것은 일반 텍스트 모드보다 다소 빠르지만 바이너리 형식입니다. 파일은 머신 아키텍처 전반에 걸쳐 이식성이 떨어집니다.포스트그레SQL버전.

귀하는 값이 다음과 같은 테이블에 대한 선택 권한이 있어야 합니다. 읽다토토 커뮤니티 대상, 그리고 다음에 대한 권한을 삽입합니다. 값이 삽입되는 테이블다음에서 토토 커뮤니티.

a에 이름이 지정된 파일토토 커뮤니티명령은 클라이언트가 아닌 서버에서 직접 읽거나 씁니다. 신청. 그러므로 그들은 다음에 거주하거나 접근 가능해야 합니다. 클라이언트가 아닌 데이터베이스 서버 시스템. 그들은 있어야합니다 에 의해 액세스 가능하고 읽기 또는 쓰기 가능PostgreSQLuser (서버가 실행하는 사용자 ID as), 클라이언트가 아닙니다.토토 커뮤니티파일 이름 지정 중 읽기를 허용하므로 데이터베이스 수퍼유저에게만 허용됩니다. 또는 서버가 액세스할 수 있는 권한이 있는 파일을 작성합니다.

혼란하지 마십시오.토토 커뮤니티와 함께psql지침\토토 커뮤니티. \토토 커뮤니티호출STDIN에서 토토 커뮤니티또는STDOUT에 토토 커뮤니티, 그런 다음 데이터를 가져오거나 저장합니다. 에 액세스할 수 있는 파일에서psql클라이언트. 따라서 파일 접근성과 접근 권한은 다음 사항에 따라 달라집니다. 서버가 아닌 클라이언트\토토 커뮤니티사용됩니다.

다음에서 사용된 파일 이름을 권장합니다.토토 커뮤니티항상 절대 경로로 지정됩니다. 이 다음의 경우 서버에 의해 시행됩니다.토토 커뮤니티 에하지만다음에서 토토 커뮤니티당신은 가지고 있습니다 상대 경로로 지정된 파일에서 읽는 옵션입니다. 경로는 작업 디렉터리를 기준으로 해석됩니다. 서버 프로세스(데이터 디렉토리 아래 어딘가) 클라이언트의 작업 디렉토리.

다음에서 토토 커뮤니티모든 트리거를 호출합니다. 대상 테이블의 제약 조건을 확인합니다. 그러나 그것은 규칙을 호출하지 않습니다.

토토 커뮤니티처음에 작업을 중지합니다. 오류. 다음과 같은 경우에는 문제가 발생하지 않아야 합니다.토토 커뮤니티 대상, 그러나 대상 테이블은 이미 a에서 이전 행을 받았습니다.토토 커뮤니티 보낸사람. 이러한 행은 표시되거나 액세스할 수 없지만 여전히 디스크 공간을 차지합니다. 이는 상당한 금액이 될 수 있습니다. 대규모 시스템에서 장애가 발생한 경우 낭비되는 디스크 공간 토토 커뮤니티 작업. 호출할 수도 있습니다.진공낭비된 공간을 복구합니다.

파일 형식

텍스트 형식

언제토토 커뮤니티은 없이 사용됩니다.바이너리옵션, 데이터 읽기 또는 서면은 테이블 행당 한 줄로 구성된 텍스트 파일입니다. 열 행은 구분 문자로 구분됩니다. 칼럼 값 자체는 출력 함수에 의해 생성된 문자열입니다. 또는 각 속성 데이터의 입력 기능에 허용 가능 유형. 지정된 null 문자열이 열 대신 사용됩니다. null입니다.토토 커뮤니티본:이를 올릴 것입니다 입력 파일의 한 줄에 더 많거나 더 적은 내용이 포함되어 있으면 오류가 발생합니다. 열이 예상보다 많습니다. 만일OIDS입니다 지정하면 OID가 첫 번째 열로 읽혀지거나 쓰여집니다. 사용자 데이터 열 앞에.

데이터의 끝은 다음을 포함하는 단일 라인으로 표시될 수 있습니다. 백슬래시 마침표(\.). 안 파일에서 읽을 때 데이터 끝 표시가 필요하지 않습니다. 파일 끝이 완벽하게 잘 작동하기 때문에; 그것은 단지 필요하다 3.0 이전 버전을 사용하여 클라이언트 애플리케이션과 데이터를 토토 커뮤니티할 때 클라이언트 프로토콜.

백슬래시 문자(\)은 아마도 에서 사용됨토토 커뮤니티데이터를 인용하는 데이터 행이나 열로 간주될 수 있는 문자 구분 기호. 특히 다음 문자는반드시앞에 열 값의 일부로 나타나는 경우 백슬래시: 백슬래시 자체, 줄 바꿈, 캐리지 리턴 및 현재 구분 기호 문자.

지정된 null 문자열은 다음에 의해 전송되었습니다.토토 커뮤니티 대상백슬래시를 추가하지 않고; 반대로,토토 커뮤니티본:일치 백슬래시를 제거하기 전에 null 문자열에 대해 입력합니다. 따라서 다음과 같은 null 문자열은\N실제 데이터 값과 혼동할 수 없음\N(다음과 같이 표현됨\\N).

다음 특수 백슬래시 시퀀스는 다음으로 인식됩니다.토토 커뮤니티본::

순서 대표
\b 백스페이스(ASCII 8)
\f 양식 피드(ASCII 12)
\n 줄바꿈(ASCII 10)
\r 캐리지 리턴(ASCII 13)
\t 탭(ASCII 9)
\v 세로 탭(ASCII 11)
\숫자 백슬래시 뒤에 1~3개의 8진수가 옵니다. 해당 숫자 코드로 문자를 지정합니다.
현재,토토 커뮤니티 대상절대 그렇지 않습니다 8진수 백슬래시 시퀀스를 내보내지만 해당 제어 문자에 대해 위에 나열된 다른 시퀀스입니다.

다음에 언급되지 않은 기타 백슬래시 문자 위의 표는 그 자체를 나타내는 것으로 간주됩니다. 그러나 조심하세요 불필요하게 백슬래시를 추가하는 것은 실수로 데이터 끝 표시와 일치하는 문자열을 생성했습니다. (\.) 또는 null 문자열(\N기본적으로). 이 문자열은 인식됩니다 다른 백슬래시 처리가 완료되기 전에.

응용 프로그램이 토토 커뮤니티를 생성하는 것이 좋습니다. 데이터는 데이터 개행 및 캐리지 리턴을로 변환합니다.\n그리고\r시퀀스 각각. 현재는 대표가 가능합니다. 백슬래시 및 캐리지 리턴에 의한 데이터 캐리지 리턴 백슬래시와 줄바꿈으로 데이터 줄바꿈을 나타냅니다. 그러나 이러한 진술은 향후 승인되지 않을 수 있습니다. 릴리스. 또한 다음과 같은 경우 부패에 매우 취약합니다. COPY 파일이 다른 시스템으로 전송됩니다(예: 예를 들어 Unix에서 Windows로 또는 그 반대로).

토토 커뮤니티 대상각 행을 종료합니다 Unix 스타일 줄바꿈("\n"). MS Windows에서 실행되는 서버 대신 캐리지 리턴/줄 바꿈()을 출력합니다."\r\n"), 단,토토 커뮤니티서버 파일에; 일관성을 위해 다양한 플랫폼에서,STDOUT에 토토 커뮤니티항상 보냄"\n"서버 플랫폼에 관계없이.다음에서 토토 커뮤니티다음으로 끝나는 줄을 처리할 수 있습니다. 줄 바꿈, 캐리지 리턴 또는 캐리지 리턴/줄 바꿈. 받는 사람 백슬래시가 없는 개행 문자로 인한 오류 위험을 줄입니다. 데이터를 의미하는 캐리지 리턴,다음에서 토토 커뮤니티행이 다음으로 끝나면 불평할 것입니다. 입력이 모두 같지는 않습니다.

바이너리 형식

다음에 사용되는 파일 형식토토 커뮤니티 바이너리변경됨PostgreSQL7.4. 새로운 형식은 다음과 같이 구성됩니다. 파일 헤더, 행 데이터를 포함하는 0개 이상의 튜플, 파일 예고편. 헤더와 데이터는 이제 네트워크 바이트에 있습니다. 주문하세요.

파일 헤더

파일 헤더는 15바이트의 고정 필드로 구성됩니다. 그 뒤에 가변 길이 헤더 확장 영역이 옵니다. 는 고정 필드는 다음과 같습니다.

서명

11바이트 시퀀스PGCOPY\n\377\r\n\0--- 참고하세요 0바이트는 서명의 필수 부분입니다. ( 서명은 쉽게 식별할 수 있도록 설계되었습니다. 8비트 클린이 아닌 프로그램에 의해 지워진 파일 양도. 이 서명은 다음에 의해 변경됩니다. 줄 끝 변환 필터, 0바이트 삭제, 높은 비트가 삭제되었거나 패리티가 변경되었습니다.)

플래그 필드

중요한 측면을 나타내는 32비트 정수 비트 마스크 파일 형식의. 비트는 0부터 번호가 매겨집니다. (LSB) ~ 31 (MSB). 참고하세요 이 필드는 네트워크 바이트 순서로 저장됩니다(대부분 중요한 바이트부터), 모든 정수 필드도 마찬가지입니다. 파일 형식으로 사용됩니다. 비트 16-31은 다음을 위해 예약되어 있습니다. 중요한 파일 형식 문제를 나타냅니다. 독자는해야한다 이 범위에 예상치 못한 비트 세트가 발견되면 중단합니다. 비트 0-15는 이전 버전과 호환된다는 신호를 보내기 위해 예약되어 있습니다. 형식 문제; 독자는 어떤 내용이라도 무시해야 합니다. 이 범위에 예상치 못한 비트가 설정되었습니다. 현재 단 1개 플래그 비트가 정의되고 나머지는 0이어야 합니다.

비트 16

1인 경우 OID가 데이터에 포함됩니다. 0이면 아님

헤더 확장 영역 길이

32비트 정수, 나머지 길이(바이트) 헤더는 포함되지 않습니다. 현재는 0이고, 첫 번째 튜플이 바로 뒤따릅니다. Future changes 형식을 변경하면 추가 데이터가 존재할 수 있습니다. 헤더에. 독자는 조용히 건너뛰어야 합니다. 헤더 확장 데이터는 무엇을 해야할지 모릅니다 와.

헤더 확장 영역은 다음을 포함하도록 구상됩니다. 자체 식별 청크의 시퀀스. 플래그 필드는 다음과 같습니다. 확장 영역에 무엇이 있는지 독자들에게 알리기 위한 것입니다. 헤더 확장 내용의 구체적인 디자인은 나중에 출시됩니다.

이 디자인은 이전 버전과 호환되는 헤더를 모두 허용합니다. 추가(헤더 확장 청크 추가 또는 하위 플래그 설정) 비트) 및 이전 버전과 호환되지 않는 변경(상위 설정 그러한 변경 사항을 알리기 위해 비트에 플래그를 지정하고 지원 데이터를 추가합니다. 필요한 경우 확장 영역).

튜플

각 튜플은 16비트 정수 개수로 시작합니다. 튜플의 필드 수입니다. (현재는 모든 튜플이 테이블의 개수는 동일하지만 항상 그렇지는 않을 수도 있습니다. true.) 그런 다음 튜플의 각 필드에 대해 반복됩니다. 32비트 길이의 워드 뒤에 해당 바이트의 필드 데이터가 옵니다. (길이 단어는 자신을 포함하지 않으며 0일 수 있습니다.) 특별한 경우로 -1은 NULL 필드 값을 나타냅니다. 값 없음 NULL 경우에는 바이트가 따릅니다.

정렬 패딩이나 기타 추가 데이터가 없습니다. 필드 사이에.

현재 a의 모든 데이터 값은토토 커뮤니티 바이너리파일은 바이너리 형식(형식)으로 가정됩니다. 코드 1). 향후 확장이 추가될 것으로 예상됨 열별 형식 코드를 허용하는 헤더 필드 지정되었습니다.

실제 파일에 적합한 바이너리 형식을 결정하려면 튜플 데이터를 참조해야 합니다.PostgreSQL소스, 특히*보내기그리고*recv각 열의 데이터 유형에 대한 함수 (일반적으로 이러한 함수는 다음에서 찾을 수 있습니다.src/백엔드/utils/adt/디렉토리 소스 배포).

OID가 파일에 포함되어 있으면 OID 필드 필드 수 단어 바로 뒤에 옵니다. 그것은 정상이다 필드 수에 포함되지 않는다는 점을 제외하면 필드입니다. 에서 특히 길이가 있는 단어가 있습니다. --- 이를 통해 처리가 가능해집니다. 큰 어려움 없이 4바이트 OID와 8바이트 OID를 그것이 입증되면 OID가 null로 표시되도록 허용 바람직하다.

파일 예고편

파일 트레일러는 16비트 정수 단어로 구성됩니다. -1을 포함합니다. 이는 튜플과 쉽게 구별됩니다. 필드 수 단어.

필드 수 단어가 다음과 같은 경우 독자는 오류를 보고해야 합니다. -1도 아니고 예상되는 열 수도 아닙니다. 이는 다음을 제공합니다 어떻게든 동기화가 되지 않는지에 대한 추가 검사 데이터.

다음 예는 다음을 사용하여 테이블을 클라이언트에 토토 커뮤니티합니다. 세로 막대(|)를 필드로 구분 기호:

구분자 '|'를 사용하여 국가를 STDOUT으로 토토 커뮤니티;

파일의 데이터를 다음으로 토토 커뮤니티하려면국가테이블:

'/usr1/proj/bray/sql/country_data'에서 국가 토토 커뮤니티;

다음은 테이블에 토토 커뮤니티하기에 적합한 데이터 샘플입니다 에서STDIN:

AF 아프가니스탄
알바니아
DZ 알제리
ZM 잠비아
ZW 짐바브웨

각 줄의 공백은 실제로 탭임을 참고하세요 문자.

다음은 동일한 데이터이며 바이너리 형식으로 출력됩니다. 는 Unix 유틸리티를 통해 필터링한 후 데이터가 표시됩니다.od -c. 테이블에는 세 개의 열이 있습니다. 첫 번째는 유형문자(2), 두 번째에는 유형이 있습니다.텍스트, 세 번째에는 유형이 있습니다.정수. 모든 행의 세 번째 행에는 null 값이 있습니다. 열.

0000000 P G C O P Y \n 377 \r \n \0 \0 \0 \0 \0 \0
0000020 \0 \0 \0 \0 003 \0 \0 \0 002 A F \0 \0 \0 013 A
0000040 F G H A N I S T A N 377 377 377 377 \0 003
0000060 \0 \0 \0 002 A L \0 \0 \0 007 A L B A N I
0000100A 377 377 377 377 \0 003 \0 \0 \0 002 DZ \0 \0 \0
0000120 007 알제리 I A 377 377 377 377 \0 003 \0 \0
0000140 \0 002 Z M \0 \0 \0 006 Z A M B I A 377 377
0000160 377 377 \0 003 \0 \0 \0 002 Z W \0 \0 \0 \b Z I
0000200 M B A B W E 377 377 377 377 377 377

호환성

없습니다토토 커뮤니티SQL의 문 표준.

다음 구문은 PostgreSQL 버전 7.3 이전에 사용되었습니다. 여전히 지원됩니다:

토토 커뮤니티 [ 바이너리 ]테이블 이름[ OIDS 포함 ]
     '에서파일 이름' | 표준 
    [ [사용] 구분 기호 '구분자' ]
    [ NULL로 '널 문자열' ]

토토 커뮤니티 [ 바이너리 ]테이블 이름[ OIDS 포함 ]
    '에파일 이름' | 표준 출력 
    [ [사용] 구분 기호 '구분자' ]
    [ NULL로 '널 문자열' ]