개발 버전 :Devel
지원되지 않은 버전 :12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

롤 토토

복사 - 파일과 테이블 사이의 데이터 복사

시놉시스

롤 토토table_name[(column_name[, ...])]filename' |명령' |옵션[, ...])]조건]table_name[(column_name[, ...]) | (쿼리)filename' |명령' |옵션[, ...])여기서옵션|형식Format_name동결 [부울]delimiter_character'null_string'default_string'부울| 성냥 ]QUOTE_CHARACTER'Escape_character'column_name[, ...]) | *column_name[, ...]) | *column_name[, ...]) | *ERROR_ACTION인코딩 'encoding_name'Verbosity

설명

롤 토토간에 ​​데이터 이동postgresql표 및 표준 파일 시스템 파일.복사테이블의 내용을 복사합니다to파일, while롤 토토 from데이터 사본From테이블에 파일 (이미 테이블에있는 모든 것에 데이터를 추가).복사a의 결과도 복사 할 수 있습니다.select쿼리.

열 목록이 지정된 경우복사지정된 열의 데이터 만 파일에 복사합니다. 을 위한롤 토토 from, 파일의 각 필드는 순서대로 지정된 열에 삽입됩니다. 표에 지정되지 않은 표 열롤 토토 from열 목록은 기본값을받습니다.

롤 토토파일 이름으로 지시postgresql서버 파일에서 직접 읽거나 쓸 수 있습니다. 파일은에 의해 액세스 할 수 있어야합니다.postgresqluser (사용자 ID 서버가 실행되는 사용자 ID)이며 이름은 서버의 관점에서 지정되어야합니다. 언제프로그램지정되고 서버는 주어진 명령을 실행하고 프로그램의 표준 출력에서 ​​읽거나 프로그램의 표준 입력에 씁니다. 명령은 서버의 관점에서 지정되어야하며에 의해 실행 될 수 있어야합니다.postgresql사용자. 언제Stdin또는stdout지정되어 있고, 데이터는 클라이언트와 서버 간의 연결을 통해 전송됩니다.

각 백엔드 실행롤 토토진행 상황을보고합니다PG_STAT_PROGRESS_롤 토토보기. 보다섹션 27.4.3자세한 내용.

기본적으로롤 토토처리 중에 오류가 발생하면 실패합니다. 전체 파일을로드하는 최상의 효과가 필요한 사용 사례의 경우on_error조항을 사용하여 다른 동작을 지정할 수 있습니다.

매개 변수

table_name

기존 테이블의 이름 (선택적으로 스키마 자격).

column_name

복사 할 열의 선택적 목록. 열 목록이 지정되지 않으면 생성 된 열을 제외한 테이블의 모든 열이 복사됩니다.

쿼리

A select, , 삽입, 업데이트, 삭제또는병합결과를 복사 할 명령. 쿼리 주변에는 괄호가 필요합니다.

for삽입, 업데이트, 삭제병합쿼리 a반환절의 조항이 제공되어야하며 대상 관계에는 조건부 규칙이 없어야합니다.또한규칙 또는 an대신여러 진술로 확장하는 규칙.

filename

입력 또는 출력 파일의 경로 이름. 입력 파일 이름은 절대적 또는 상대 경로 일 수 있지만 출력 파일 이름은 절대 경로 여야합니다.e ''경로 이름에 사용 된 뒷면 슬래시를 문자열 및 두 배로 늘립니다.

프로그램

실행하라는 명령. 안에롤 토토 from, 입력은 명령의 표준 출력에서 ​​읽습니다.복사, 출력은 명령의 표준 입력에 기록됩니다.

명령은 쉘에 의해 호출되므로 신뢰할 수없는 소스에서 나오는 인수를 전달 해야하는 경우 쉘에 대한 특별한 의미를 가질 수있는 특수 문자를 벗기거나 탈출해야합니다. 보안상의 이유로, 고정 된 명령 문자열을 사용하거나 최소한 사용자 입력을 포함하지 않는 것이 가장 좋습니다.

Stdin

입력이 클라이언트 응용 프로그램에서 제공되는 것을 지정합니다.

stdout

출력이 클라이언트 응용 프로그램으로 이동하는 것을 지정합니다.

부울

선택한 옵션을 켜거나 끄야하는지 여부를 지정합니다. 당신은 쓸 수 있습니다true, on또는1옵션을 활성화하려면거짓, OFF또는0비활성화하려면. 그만큼부울값도 생략 할 수 있습니다.true가 가정됩니다.

형식

읽거나 쓸 수있는 데이터 형식을 선택합니다 :텍스트, CSV(쉼표 분리 값) 또는Binary. 기본값은텍스트.

Freeze

|진공 동결명령. 이는 초기 데이터 로딩을위한 성능 옵션으로 고안되었습니다.동결 복사분할 된 테이블에서. 이 옵션은에서만 허용됩니다.롤 토토 from.

다른 모든 세션은 데이터가 성공적으로로드되면 즉시 데이터를 볼 수 있습니다. 이것은 MVCC 가시성의 정상적인 규칙을 위반하고 사용자는 이것이 발생할 수있는 잠재적 문제를 알고 있어야합니다..

Delimiter

파일의 각 행 (줄) 내에서 열을 분리하는 문자를 지정합니다. 기본값은 텍스트 형식의 탭 문자입니다.CSV형식. 이것은 하나의 1 바이트 문자 여야합니다.Binary형식.

NULL

널 값을 나타내는 문자열을 지정합니다. 기본값은\ n(backslash-n) 텍스트 형식의, intect inCSV형식. 널을 빈 문자와 구별하지 않으려는 경우 텍스트 형식의 빈 문자열을 선호 할 수 있습니다.Binary형식.

note

사용시롤 토토 from,이 문자열과 일치하는 모든 데이터 항목은 널 값으로 저장되므로와 동일한 문자열을 사용해야합니다.복사.

기본값

기본값을 나타내는 문자열을 지정합니다. 문자열이 입력 파일에있을 때마다 해당 열의 기본값이 사용됩니다.롤 토토 from, 그리고 사용하지 않을 때만Binary형식.

헤더

파일에 파일에 각 열의 이름이있는 헤더 라인이 포함되어 있는지 지정합니다. 출력에서 첫 번째 줄에는 테이블의 열 이름이 포함되어 있습니다.true(또는 동등한 부울 값). 이 옵션이 설정된 경우매치, 헤더 라인의 열의 번호와 이름은 테이블의 실제 열 이름과 순서대로 일치해야합니다. 그렇지 않으면 오류가 발생합니다.Binary형식. 그만큼매치옵션은에만 유효합니다롤 토토 from명령.

QUOTE

데이터 값이 인용 될 때 사용할 인용 문자를 지정합니다. 기본값은 이중 인용입니다.CSV형식.

탈출

와 일치하는 데이터 문자 앞에 나타나야하는 문자를 지정합니다QUOTE값. 기본값은와 동일합니다.QUOTEvalue (따라서 인용 문자가 데이터에 나타나면 두 배가되도록). 이것은 하나의 1 바이트 문자 여야합니다.CSV형식.

Force_quote

모든 비에 대해 사용하도록 인용하는 힘NULL지정된 각 열의 값.NULL출력은 인용되지 않습니다. 만약에*지정되어 있지 않습니다.NULL값은 모든 열에 인용됩니다. 이 옵션은에서만 허용됩니다.복사, 그리고 사용할 때만CSV형식.

force_not_null

지정된 열의 값과 널 문자열과 일치하지 마십시오. NULL 문자열이 비어있는 기본 경우에서는 빈 값이 인용되지 않더라도 NULL이 아닌 0 길이 스트링으로 읽습니다.*지정되어 있으며 옵션은 모든 열에 적용됩니다. 이 옵션은에서만 허용됩니다.롤 토토 from, 그리고 사용할 때만CSV형식.

Force_null

지정된 열의 값을 인용 된 경우에도 NULL 문자열과 일치시키고 일치가 발견되면 값을 설정하면NULL. NULL 문자열이 비어있는 기본 케이스에서는 인용 된 빈 문자열을 NULL로 변환합니다.*지정되어 있으며 옵션은 모든 열에 적용됩니다. 이 옵션은에서만 허용됩니다.롤 토토 from, 그리고 사용할 때만CSV형식.

on_error

열의 입력 값을 데이터 유형으로 변환하는 오류가 발생할 때 작동하는 방법을 지정합니다.ERROR_ACTION정지명령에 실패하는 동안무시의미는 입력 행을 폐기하고 다음 단계를 계속합니다. 기본값은정지.

the무시옵션은에만 적용됩니다롤 토토 from언제형식is텍스트또는CSV.

A 통지무시 된 행 카운트가 포함 된 메시지롤 토토 from적어도 하나의 행이 폐기 된 경우. 언제log_verbosity옵션이 설정되었습니다Verbose, a통지입력 파일의 줄을 포함하는 메시지와 입력 변환이 실패한 열 이름이 각 폐기 행에 대해 배출됩니다.

인코딩

파일이 인코딩되어 있음을 지정합니다.encoding_name. 이 옵션이 생략되면 현재 클라이언트 인코딩이 사용됩니다.

log_verbosity

a에 의해 방출되는 메시지의 양을 지정합니다롤 토토명령 :기본값또는Verbose. 만약에Verbose지정되고 처리 중에 추가 메시지가 방출됩니다.

현재롤 토토 fromon_error옵션이 설정되었습니다무시.

여기서

선택 사항여기서조항은 일반적인 양식을 가지고 있습니다

여기서조건

여기서조건유형의 결과를 평가하는 표현식입니다부울. 이 조건을 충족하지 않는 행은 테이블에 삽입되지 않습니다.

현재, 하위 쿼리는 허용되지 않습니다여기서표현 및 평가에는의 변경 사항이 표시되지 않습니다.롤 토토그 자체 (이것은 표현식에 호출이 포함 된 경우입니다.휘발성기능).

출력

성공적인 완료시 A롤 토토명령은 양식의 명령 태그를 반환

롤 토토count

thecount복사 된 행 수입니다.

note

PSQL명령이없는 경우에만이 명령 태그를 인쇄합니다복사 ... stdout또는 이와 동등한PSQLMeta-Command\ 롤 토토 ... to stdout. 이것은 명령 태그를 방금 인쇄 한 데이터와 혼동하지 않도록하기위한 것입니다.

노트

복사보기가 아닌 일반 테이블에서만 사용할 수 있으며 자식 테이블이나 하위 파티션에서 행을 복사하지 않습니다. 예를 들어,롤 토토테이블to동일한 행과 같은 행을 복사합니다선택 * From Only테이블. 구문롤 토토 (select * from테이블) to ...상속 계층, 분할 된 테이블 또는보기에 모든 행을 덤프하는 데 사용할 수 있습니다.

롤 토토 from평범한, 외국 또는 분할 된 테이블 또는 뷰와 함께 사용할 수 있습니다삽입 대신트리거.

값을 읽는 테이블에 선택된 권한이 있어야합니다복사, 그리고 값이 삽입되는 테이블에 권한을 삽입하십시오롤 토토 from. 명령에 열거 된 열에 열 권한을 갖는 것으로 충분합니다.

테이블에 대한로드 레벨 보안이 활성화 된 경우 관련select정책이 적용됩니다롤 토토테이블to진술. 현재,롤 토토 from는로드 레벨 보안이있는 테이블에 대해 지원되지 않습니다. 동등한 사용삽입대신 진술.

a에 명명 된 파일롤 토토명령은 클라이언트 응용 프로그램이 아닌 서버에서 직접 읽거나 작성합니다. 따라서 클라이언트가 아닌 데이터베이스 서버 시스템에 상주하거나 액세스 할 수 있어야합니다.postgresql사용자 (사용자는 서버가 실행되는 사용자 ID)가 아니라 클라이언트가 아닙니다. 마찬가지로 명령은프로그램클라이언트 응용 프로그램이 아닌 서버에서 직접 실행됩니다.postgresqluser.롤 토토파일 또는 명령 이름은 데이터베이스 슈퍼 사용자 또는 역할 중 하나가 부여 된 사용자에게만 허용됩니다PG_READ_SERVER_FILES, pg_write_server_files또는pg_execute_server_program, 서버가 액세스 할 권한이있는 프로그램을 읽거나 쓰거나 프로그램을 실행할 수 있으므로

혼동하지 마십시오롤 토토withPSQL교육\ 롤 토토. \ 롤 토토호출stdin에서 복사또는stdout에 복사PSQL클라이언트. 따라서 파일 접근성 및 액세스 권한은 서버가 아닌 클라이언트에 따라\ 롤 토토사용됩니다.

사용 된 파일 이름이 권장됩니다.롤 토토항상 절대 경로로 지정됩니다. 이것은의 경우 서버에 의해 시행됩니다.복사하지만롤 토토 from상대 경로로 지정된 파일에서 읽을 수있는 옵션이 있습니다. 이 경로는 클라이언트의 작업 디렉토리가 아닌 서버 프로세스의 작업 디렉토리 (일반적으로 클러스터의 데이터 디렉토리)에 비해 해석됩니다.

명령 실행프로그램Selinux와 같은 운영 체제의 액세스 제어 메커니즘에 의해 제한 될 수 있습니다.

롤 토토 from대상 테이블에서 트리거를 호출하고 제약 조건을 확인합니다. 그러나 규칙을 호출하지 않습니다.

신원 열,롤 토토 from명령은 항상 입력 데이터에 제공된 열 값을와 같이 작성합니다.삽입옵션시스템 가치 재정의.

롤 토토입력 및 출력에 의해 영향을받습니다Datestyle. 다른 사람에 대한 이식성을 보장하려면postgresql비 디폴트를 사용할 수있는 설치Datestyle설정,Datestyle로 설정해야합니다ISO사용 전복사. 또한 데이터를 덤프하지 않도록하는 것도 좋은 생각입니다.IntervalStyle설정sql_standard, 음의 간격 값이 다른 설정이 다른 서버에 의해 잘못 해석 될 수 있기 때문에IntervalStyle.

입력 데이터는에 따라 해석됩니다.인코딩옵션 또는 현재 클라이언트 인코딩 및 출력 데이터가 인코딩되어인코딩또는 현재 클라이언트 인코딩, 데이터가 클라이언트를 통과하지 않고 서버에서 직접 파일에서 읽거나 기록됩니다.

the롤 토토 from명령은 입력 행이 진행될 때 테이블에 물리적으로 삽입됩니다. 명령이 실패하면이 행은 삭제 된 상태로 남겨집니다.진공낭비 된 공간을 복구하는 데 사용해야합니다.

Force_nullforce_not_null동시에 동시에 사용할 수 있습니다. 이로 인해 인용 된 널 문자열을 널 값으로 변환하고 인용되지 않은 널 문자열을 빈 문자로 변환합니다.

파일 형식

텍스트 형식

언제텍스트형식이 사용되며, 읽기 또는 작성된 데이터는 테이블 행당 한 줄의 텍스트 파일입니다. 연속의 열은 구분자 문자로 분리됩니다.롤 토토 from입력 파일의 라인에 예상보다 열이 많거나 적은 열이 포함 된 경우 오류가 발생합니다.

데이터 끝은 백 슬래시-기간을 포함하는 단일 줄로 표시 될 수 있습니다 (\.). 파일 끝이 완벽하게 잘 작동하기 때문에 파일에서 읽을 때 데이터 종료 마커가 필요하지 않습니다.

BackSlash 문자 (\)에서 사용할 수 있습니다롤 토토그렇지 않으면 행 또는 열 구분자로 취할 수있는 데이터 문자를 인용하는 데이터. 특히 다음 문자필수열 값의 일부로 나타나는 경우 백 슬래시가 앞서 나옵니다 : 백 슬래시 자체, Newline, Carriage Return 및 현재 분리기 문자..

지정된 널 문자열은에 의해 전송됩니다.복사백 슬래시를 추가하지 않고; 거꾸로,롤 토토 from백 슬래시를 제거하기 전에 널 문자열과 입력을 일치시킵니다. 따라서와 같은 널 문자열\ n실제 데이터 값과 혼동 될 수 없습니다\ n(\\ n).

다음 특수 백 슬래시 시퀀스는에 의해 인식됩니다.롤 토토 from:

시퀀스 대표
\ b 백 스페이스 (ASCII 8)
\ f 양식 피드 (ASCII 12)
\ n Newline (ASCII 10)
\ r 캐리지 리턴 (ASCII 13)
\ t 탭 (ASCII 9)
\ V 수직 탭 (ASCII 11)
\Digits 백 슬래시 뒤에 1 ~ 3 개의 옥탈 숫자가 해당 숫자 코드와 바이트를 지정
\ xDigits backslashx그 뒤에 하나 또는 두 개의 16 진수가 해당 숫자 코드로 바이트를 지정

현재,복사옥탈 또는 육각형 백 슬래시 시퀀스를 방출하지는 않지만 해당 제어 문자에 대해 위에 나열된 다른 시퀀스를 사용합니다..

위 표에 언급되지 않은 다른 백 슬래시 캐릭터는 자체를 나타내도록 취할 것입니다. 그러나 불필요하게 백 슬래시를 추가하지 않아도됩니다. 실수로 데이터 끝 마커 (와 일치하는 문자열이 생성 될 수 있기 때문입니다.\.) 또는 널 문자열 (\ n기본적으로). 이 문자열은 다른 백 슬래시 처리가 완료되기 전에 인식됩니다.

응용 프로그램이 생성하는 것이 좋습니다롤 토토데이터 변환 데이터 Newlines 및 Carriage Returns\ n\ r각각 시퀀스. 현재 백 슬래시 및 캐리지 리턴에 의한 데이터 캐리지 리턴을 나타내고 백 슬래시 및 신규 라인에 의해 데이터 신규 라인을 나타낼 수 있습니다.롤 토토파일은 다른 컴퓨터에서 전송됩니다 (예 : UNIX에서 Windows 또는 그 반대로)

모든 백 슬래시 시퀀스는 변환을 인코딩 한 후에 해석됩니다. Octal 및 Hex-Digit Backslash 시퀀스로 지정된 바이트는 데이터베이스 인코딩에서 유효한 문자를 형성해야합니다.

복사Unix 스타일의 Newline (로 각 행을 종료합니다.\ n). Microsoft Windows에서 실행되는 서버 대신 캐리지 return/newline ( 대신 출력\ r \ n)하지만롤 토토서버 파일로; 플랫폼 전체의 일관성을 위해stdout에 복사항상 보낸다\ n서버 플랫폼에 관계없이.롤 토토 fromNewlines, Carriage Returns 또는 Carriage Return/Newlines로 끝나는 선을 처리 할 수 ​​있습니다. 백사 슬래시가없는 신형 또는 데이터와 같은 캐리지 리턴으로 인한 오류의 위험을 줄이려면롤 토토 from입력의 줄 종료가 모두 비슷하지 않은지 불평합니다.

CSV 형식

이 형식 옵션은 쉼표로 분리 된 값을 가져오고 내보내는 데 사용됩니다 (CSV) 스프레드 시트와 같은 다른 많은 프로그램에서 사용하는 파일 형식. 에 사용 된 탈출 규칙 대신postgresql의 표준 텍스트 형식은 공통을 생성하고 인식합니다CSV탈출 메커니즘.

각 레코드의 값은에 의해 분리됩니다.Delimiter문자. 값에 Delimiter 문자가 포함 된 경우QUOTE캐릭터,NULL문자열, 캐리지 리턴 또는 선 피드 문자 인 경우 전체 값은 접두사에 의해 접두사로 표시되고 접미사됩니다.QUOTE캐릭터 및 A의 값 내에서 발생하는 모든 사건QUOTE캐릭터 또는탈출캐릭터는 탈출 캐릭터가 선행됩니다. 당신은 또한 사용할 수 있습니다Force_quote비 출력시 인용문을 강제로NULL특정 열의 값.

theCSV형식은 A를 구별하는 표준 방법이 없습니다NULL빈 문자열의 값.postgresql's롤 토토인용하여 이것을 처리합니다. 에이NULL출력NULL매개 변수 문자열은 인용되지 않으며, 비NULL값 일치NULL매개 변수 문자열이 인용됩니다. 예를 들어, 기본 설정으로 ANULL인용되지 않은 빈 문자열로 작성되며 빈 문자열 데이터 값은 이중 인용문으로 작성됩니다 (""). 읽기 값은 비슷한 규칙을 따릅니다.force_not_null방지하려면NULL특정 열에 대한 입력 비교. 당신은 또한 사용할 수 있습니다Force_null인용 된 NULL 문자열 데이터 값을 변환하려면NULL.

Backslash가 특별한 캐릭터가 아니기 때문에CSV형식,\., 데이터 종료 마커도 데이터 값으로 나타날 수 있습니다. 잘못 해석을 피하기 위해 A\.라인의 고독 항목으로 나타나는 데이터 값은 출력시 자동 인용되며 인용 된 경우 입력시 데이터 종료 마커로 해석되지 않습니다. 단일 인용되지 않은 열이 있고 값이가있는 다른 응용 프로그램에서 생성 된 파일을로드하는 경우\., 입력 파일에 해당 값을 인용해야 할 수도 있습니다.

note

inCSV형식, 모든 문자는 중요합니다. 공백으로 둘러싸인 인용 된 가치 또는 이외의 다른 문자Delimiter에는 해당 문자가 포함됩니다. 패드가있는 시스템에서 데이터를 가져 오면 오류가 발생할 수 있습니다.CSV공백이 고정 너비로 ​​선이있는 선. 그러한 상황이 발생하면 전처리해야 할 수도 있습니다.CSV데이터를 가져 오기 전에 후행 공백을 제거하려는 파일postgresql.

note

CSV형식은 모두 인식하고 생산합니다CSV내장 된 캐리지 리턴 및 라인 피드가 포함 된 인용 된 값이있는 파일. 따라서 파일은 텍스트 형식 파일과 같이 테이블 행당 하나의 줄이 아닙니다.

note

많은 프로그램이 이상하고 때로는 왜곡을 생산합니다CSV파일이므로 파일 형식은 표준보다 더 규칙입니다. 따라서이 메커니즘을 사용하여 가져올 수없는 일부 파일과롤 토토다른 프로그램이 처리 할 수없는 파일을 생성 할 수 있습니다.

이진 형식

theBinary형식 옵션은 모든 데이터를 텍스트가 아닌 이진 형식으로 저장/읽습니다. 텍스트보다 다소 빠릅니다CSV형식이지만, 이진 형식 파일은 기계 아키텍처에서 휴대용이 덜 휴대용입니다.postgresql버전. 또한 이진 형식은 매우 데이터 유형에 따라 다릅니다.smallint열을 읽고Integer열, 텍스트 형식으로 잘 작동하지만

theBinary파일 형식은 파일 헤더, 행 데이터가 포함 된 튜플 이상 및 파일 트레일러로 구성됩니다. 헤더와 데이터는 네트워크 바이트 순서입니다.

note

postgresql7.4 이전에 다른 바이너리 파일 형식을 사용하기 전에 릴리스.

파일 헤더

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

서명

11 바이트 시퀀스pgcopy \ n \ 377 \ r \ n \ 0- 제로 바이트는 서명의 필수 부분입니다. (서명은 8 비트 클리어 전송에 의해 munged 파일을 쉽게 식별 할 수 있도록 설계되었습니다.이 서명은 종말 변환 필터, 제로 바이트, 높은 비트 또는 패리티 변경으로 인해 변경됩니다.).

플래그 필드

32 비트 정수 비트 마스크 파일 형식의 중요한 측면을 나타냅니다. 비트는 0 (에서 번호가 매겨집니다.LSB) ~ 31 (MSB). 이 필드는 파일 형식에 사용 된 모든 정수 필드와 마찬가지로 네트워크 바이트 순서 (가장 중요한 바이트 우선)에 저장됩니다.

비트 16

1 인 경우 OID가 데이터에 포함됩니다. 0이면.postgresql더 이상, 그러나 형식에는 여전히 표시기가 포함되어 있습니다.

헤더 확장 영역 길이

32 비트 정수, 나머지 헤더의 바이트 길이는 자기를 포함하지 않습니다. 현재 이것은 0이고 첫 번째 튜플은 즉시 따릅니다.

헤더 확장 영역은 일련의 자체 식별 청크를 포함하도록 구상되었습니다. 플래그 필드는 독자들에게 확장 영역에있는 것을 알려주는 것이 아닙니다.

이 설계는 뒤로 호환 헤더 추가 (헤더 확장 덩어리 추가 또는 저음 깃발 비트를 설정) 및 비 백워드 호환 변경 (이러한 변경 사항을 알리기 위해 고차 플래그 비트를 설정하고 필요한 경우 확장 영역에 지원 데이터를 추가 할 수 있습니다).

튜플

각 튜플은 튜플의 필드 수의 16 비트 정수 수로 시작됩니다. (현재, 테이블의 모든 튜플은 같은 카운트를 가질 것이지만 항상 사실이 아닐 수도 있습니다.) 그런 다음 튜플의 각 필드마다 반복되면 32 비트 길이의 단어와 많은 바이트의 필드 데이터가 있습니다.

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

현재 이진 형식 파일의 모든 데이터 값은 이진 형식 (형식 코드 1)으로 가정됩니다. 향후 확장자는 컬럼 당 형식 코드를 지정할 수있는 헤더 필드를 추가 할 수 있습니다.

실제 튜플 데이터에 대한 적절한 이진 형식을 결정하려면postgresql소스, 특히*send*recv각 열의 데이터 유형에 대한 함수 (일반적으로 이러한 함수는에 있습니다src/backend/utils/adt/소스 분포의 디렉토리).

파일에 OID가 포함 된 경우 OID 필드는 즉시 필드 카운트 단어를 따릅니다. 필드 카운트에 포함되지 않는 것을 제외하고는 정상 필드입니다.postgresql.

파일 트레일러

파일 트레일러는 -1을 포함하는 16 비트 정수 단어로 구성됩니다. 이것은 튜플의 필드 카운트 단어와 쉽게 구별됩니다.

필드 카운트 단어가 -1이 아니거나 예상 된 열의 수가 아닌 경우 리더는 오류를보고해야합니다. 이것은 어떻게 든 데이터와 동기화에서 벗어나는 것에 대한 추가 점검을 제공합니다.

다음 예제는 수직 막대를 사용하여 클라이언트에게 테이블을 복사합니다 (|) 필드 구분 기호로서 :

Country Country to Stdout (Delimiter '|');

파일의 데이터를에 복사하려면Country테이블 :

'/usr1/proj/bray/sql/country_data'에서 컨트리를 복사합니다.

이름이 'a'로 시작하는 국가 만 파일에 복사하려면 :

롤 토토 (Country_Name이 'A%'와 같은 국가에서 선택 *)에서 '/usr1/proj/bray/sql/a_list_countries.copy';

압축 파일로 복사하려면 외부 압축 프로그램을 통해 출력을 파이프 할 수 있습니다.

롤 토토 COPIT CONITY 'GZIP> /usr1/proj/bray/sql/country_data.gz';

여기 테이블에 복사하는 데 적합한 데이터 샘플이 있습니다.Stdin:

AF 아프가니스탄

각 라인의 공백은 실제로 탭 문자입니다.

다음은 동일한 데이터이며 이진 형식의 출력입니다. UNIX 유틸리티를 통해 필터링 한 후 데이터가 표시됩니다.OD -C. 테이블에는 세 개의 열이 있습니다.char (2), 두 번째는 유형이 있습니다텍스트그리고 세 번째는 유형이 있습니다Integer. 모든 행은 세 번째 열에 널 값이 있습니다.

0000000 p g c o p y \ n 377 \ r \ n \ 0 \ 0 \ 0 \ 0 \ 0 \ 0

호환성

없음롤 토토SQL 표준의 명령문.

다음 구문이 전에 사용되었습니다postgresql버전 9.0 및 여전히 지원됩니다 :

롤 토토table_name[(column_name[, ...])]filename' |delimiter_character' ]]null_string' ]]QUOTE_CHARACTER' ]]Escape_character' ]]column_name[, ...]]]]table_name[(column_name[, ...]) | (쿼리)filename' |delimiter_character' ]]null_string' ]]QUOTE_CHARACTER' ]]Escape_character' ]]column_name[, ...] | *]]]

이 구문에서BINAGECSVa가 아니라 독립적 인 키워드로 취급됩니다형식옵션.

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

복사 [binary]table_namefrom  'filename' |delimiter_character' ]]null_string' ]]table_nameto  'filename' |delimiter_character' ]]null_string' ]

수정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면