Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ: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
Tài kèo bóng đá c1 này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng kèo bóng đá c1 trang chohiện tạiPhiên bản hoặc kèo bóng đá c1 trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

kèo bóng đá c1Copy

tên

kèo bóng đá c1-kèo bóng đá c1 dữ liệu giữa các tệp và Bảng

Synopsis

kèo bóng đá c1 [nhị phân]Bảng[với OIDS]
    TỪ  'FileName' |stdin[[Sử dụng] Delimiters 'Delimiter' ]
    [Với null là 'Chuỗi null' ]
kèo bóng đá c1 [nhị phân]Bảng[với OIDS]
    ĐẾN  'FileName' |stdout[[Sử dụng] Delimiters 'Delimiter' ]
    [Với null là 'NULL String' ]

Đầu vào

nhị phân

Thay đổi hành vi của định dạng trường, buộc tất cả dữ kèo bóng đá c1 sẽ được lưu trữ hoặc đọc ở định dạng nhị phân chứ không phải là chữ. Các phân định và với các tùy chọn null là không liên quan cho định dạng nhị phân.

Bảng

Tên của kèo bóng đá c1 bảng hiện có.

với oids

Chỉ định kèo bóng đá c1 ID đối tượng duy nhất bên trong (OID) cho mỗi hàng.

FileName

Tên đường dẫn UNIX tuyệt đối của đầu vào hoặc đầu ra tài kèo bóng đá c1.

stdin

Chỉ định đầu vào đó đến từ máy khách ứng dụng.

stdout

Chỉ định đầu ra đó được chuyển đến máy khách ứng dụng.

Delimiter

ký tự phân tách các trường trong mỗi hàng (dòng) của tệp.

NULL Chuỗi

Chuỗi đại diện cho giá trị null. Mặc định là"\ n"(Backslash-n). Bạn có thể thích hơn Ví dụ: kèo bóng đá c1 chuỗi trống.

Lưu ý:Trên một bản kèo bóng đá c1, bất kỳ mục dữ liệu nào khớp với chuỗi này sẽ được lưu trữ dưới dạng giá trị null, Vì vậy, bạn nên đảm bảo rằng bạn sử dụng cùng một chuỗi Như bạn đã sử dụng trên bản kèo bóng đá c1.

đầu ra

Copy

Bản kèo bóng đá c1 đã hoàn thành thành công.

Lỗi:Lý do

Bản kèo bóng đá c1 không thành công vì lý do đã nêu trong lỗi tin nhắn.

Mô tả

Copydi chuyển dữ kèo bóng đá c1 giữaPostgresBảng và hệ thống tệp tiêu chuẩn Tệp.kèo bóng đá c1 vàokèo bóng đá c1 toàn bộ nội dung của một bảng vào một tệp, trong khikèo bóng đá c1 từkèo bóng đá c1 dữ liệu từ tệp sang bảng (thêm dữ liệu vào bất cứ điều gì trong bảng rồi).

CopyHướng dẫnPostgresBackend để đọc trực tiếp từ hoặc ghi vào kèo bóng đá c1 tập tin. Nếu kèo bóng đá c1 tên tệp được chỉ định, tệp phải là có thể truy cập vào phần phụ trợ và tên phải được chỉ định từ quan điểm của phần phụ trợ. Nếu nhưstdinhoặcstdoutđược chỉ định, dữ kèo bóng đá c1 chảy qua máy khách frontend đến phụ trợ.

Tip:Không nhầm lẫnCopyvớiPSQLHướng dẫn\ Copy. \ CopyGọikèo bóng đá c1 từ Stdinhoặckèo bóng đá c1 vào stdout, và sau đó tìm kiếm/lưu trữ dữ kèo bóng đá c1 trong một tệp có thể truy cập vàoPSQLKhách hàng. Do đó, khả năng truy cập tệp và quyền truy cập phụ thuộc vào khách hàng hơn là phụ trợ khi\ Copyđược sử dụng.

ghi chú

Từ khóa nhị phân sẽ buộc tất cả dữ liệu được lưu trữ/đọc là Định dạng nhị phân chứ không phải là văn bản. Nó nhanh hơn một chút so với Lệnh kèo bóng đá c1 bình thường, nhưng tệp kèo bóng đá c1 nhị phân không thể di động trên các kiến ​​trúc máy.

Theo mặc định, một bản kèo bóng đá c1 văn bản sử dụng ký tự tab ("\ t") làm phân định giữa các trường. Phân định trường có thể được thay đổi thành bất kỳ ký tự đơn nào khác với cụm từ khóa bằng cách sử dụng Phân định. Ký tự trong các trường dữ liệu xảy ra phù hợp với Nhân vật Delimiter sẽ được trích dẫn. Lưu ý rằng Delimiter luôn là một ký tự duy nhất. Nếu nhiều ký tự được chỉ định trong chuỗi phân cách, chỉ có ký tự đầu tiên được sử dụng.

Bạn phải cóChọn AccessTrên bất kỳ bảng có giá trị được đọc bởiCopy, và hoặcChènhoặcCập nhật truy cậpđến kèo bóng đá c1 bảng mà các giá trị là được chèn bởiCopy. Phần phụ trợ cũng vậy Cần các quyền Unix thích hợp cho bất kỳ tệp hoặc viết được đọc quaCopy.

kèo bóng đá c1 vàoKhông gọi các quy tắc cũng không hành động trên các mặc định cột. Nó không gọi các kích hoạt và kiểm tra hạn chế.

CopyDừng hoạt động ở lần đầu tiên lỗi. Điều này không nên dẫn đến các vấn đề trong trường hợpkèo bóng đá c1 từ, nhưng mối quan hệ đích sẽ đã nhận được các hàng trước đó trong kèo bóng đá c1kèo bóng đá c1 ĐẾN. Những hàng này sẽ không hiển thị hoặc có thể truy cập được, nhưng chúng Vẫn chiếm không gian đĩa. Điều này có thể lên tới một Lượng không gian đĩa lãng phí nếu sự cố xảy ra tốt vào một Hoạt động bản kèo bóng đá c1 lớn. Bạn có thể muốn gọiVACUUMĐể phục hồi không gian lãng phí.

Tệp có tên trong ACopyLệnh là Đọc hoặc viết trực tiếp bởi phần phụ trợ, không phải bởi khách hàng ứng dụng. Do đó, họ phải cư trú hoặc có thể truy cập được Máy chủ cơ sở dữ kèo bóng đá c1, không phải máy khách. Họ phải được Có thể truy cập và có thể đọc được hoặc có thể ghi bởi người dùng Postgres (userId phần phụ trợ chạy như), không phải máy khách.CopyĐặt tên một tệp chỉ được phép vào cơ sở dữ kèo bóng đá c1 Superusers, vì nó cho phép viết trên bất kỳ tệp nào mà phụ trợ có các đặc quyền để viết trên.

Tip:ThePSQLHướng dẫn\ CopyĐọc hoặc viết các tệp trên máy khách với quyền của khách hàng, Vì vậy, nó không bị giới hạn đối với các siêu nhân.

khuyến nghị rằng tên tệp được sử dụng trongCopyLuôn luôn được chỉ định là kèo bóng đá c1 đường dẫn tuyệt đối. Điều này được thi hành bởi phần phụ trợ trong trường hợpkèo bóng đá c1 vào, nhưng chokèo bóng đá c1 từBạn có tùy chọn đọc từ kèo bóng đá c1 tệp được chỉ định bởi kèo bóng đá c1 đường dẫn tương đối. Con đường sẽ được giải thích so với Thư mục làm việc của phụ trợ (ở đâu đó bên dưới$ pgdata), không phải là khách hàng làm việc thư mục.

Định dạng tệp

Định dạng văn bản

Khikèo bóng đá c1 vàođược sử dụng mà không có Tùy chọn nhị phân, tệp được tạo sẽ có từng hàng (ví dụ) trên kèo bóng đá c1 dòng duy nhất, với mỗi cột (thuộc tính) được phân tách bởi nhân vật phân định. Ký tự phân cách nhúng sẽ là trước kèo bóng đá c1 ký tự dấu gạch chéo ngược ("\"). Các giá trị thuộc tính bản thân chúng là các chuỗi được tạo bởi chức năng đầu ra liên kết với mỗi loại thuộc tính. Chức năng đầu ra cho kèo bóng đá c1 Loại không nên cố gắng tạo ký tự dấu gạch chéo ngược; cái này sẽ được xử lý bởiCopychính nó.

Định dạng thực tế cho mỗi trường hợp là

<attr1 <phân tách<attr2 <phân tách... <phân tách<attrn<NewLine
Lưu ý rằng phần cuối của mỗi hàng được đánh dấu bằng kiểu UNIX newline ("\ n").kèo bóng đá c1 từsẽ không cư xử như mong muốn nếu được cung cấp kèo bóng đá c1 tệp chứa các dòng mới theo kiểu DOS hoặc MAC.

OID được phát ra dưới dạng cột đầu tiên nếu có OIDS là được chỉ định.

nếukèo bóng đá c1 vàođang gửi đầu ra của nó đến đầu ra tiêu chuẩn thay vì kèo bóng đá c1 tệp, sau hàng cuối cùng, nó sẽ Gửi dấu gạch chéo ngược ("\") và kèo bóng đá c1 khoảng thời gian (".") NEWLINE. Tương tự, nếukèo bóng đá c1 từIS Đọc từ đầu vào tiêu chuẩn, nó sẽ mong đợi kèo bóng đá c1 dấu gạch chéo ngược ("\") và kèo bóng đá c1 khoảng thời gian (".") theo sau là kèo bóng đá c1 dòng mới, là ba ký tự trên kèo bóng đá c1 dòng để biểu thị phần cuối. Tuy nhiên,kèo bóng đá c1 từsẽ chấm dứt chính xác (tiếp theo là bản thân phụ trợ) nếu kết nối đầu vào được đóng trước mẫu cuối tệp đặc biệt này được tìm thấy.

ký tự dấu gạch chéo ngược có ý nghĩa đặc biệt khác. MỘT Nhân vật dấu gạch chéo ngược theo nghĩa đen được thể hiện là hai lần liên tiếp BackSlashes ("\"). Một ký tự tab theo nghĩa đen được thể hiện dưới dạng Backslash và một tab. (Nếu bạn đang sử dụng một cái gì đó không phải là tab Là dấu phân cách cột, dấu gạch chéo ngược ký tự phân định để Bao gồm nó trong dữ kèo bóng đá c1.) Một ký tự dòng mới được biểu diễn như một dấu gạch chéo ngược và một dòng mới. Khi tải dữ kèo bóng đá c1 văn bản không được tạo bởiPostgres, bạn sẽ cần chuyển đổi các ký tự Backslash ("\") thành Double-BackSlashes ("\") để đảm bảo rằng chúng được tải đúng cách.

Định dạng nhị phân

Định dạng tệp được sử dụng chokèo bóng đá c1 nhị phânThay đổi trong Postgres v7.1. Định dạng mới bao gồm một tệp Tiêu đề, không có hoặc nhiều bộ dữ kèo bóng đá c1 và một đoạn giới thiệu tệp.

Tiêu đề tệp

Tiêu đề tệp bao gồm 24 byte của các trường cố định, tiếp theo là kèo bóng đá c1 khu vực mở rộng tiêu đề có độ dài thay đổi. Các Các trường cố định là:

Chữ ký

Trình tự 12 byte "pgbcopy \ n \ 377 \ r \ n \ 0" --- Lưu ý rằng NULL là kèo bóng đá c1 phần cần thiết của chữ ký. (The Chữ ký được thiết kế để cho phép xác định dễ dàng Các tệp đã bị MUNGED bởi kèo bóng đá c1 người không sạch sẽ chuyển khoản. Chữ ký này sẽ được thay đổi bởi Các bộ lọc dịch chuyển mới, bỏ rơi, rơi BIT cao hoặc thay đổi chẵn lẻ.)

Trường Bố cục số nguyên

Int32 hằng số 0x01020304 theo thứ tự byte của nguồn. Có khả năng, kèo bóng đá c1 độc giả có thể tham gia vào byte của Các trường tiếp theo nếu phát hiện thứ tự byte sai đây.

Trường cờ

Mặt nạ bit int32 để biểu thị các khía cạnh quan trọng của Định dạng tệp. Các bit được đánh số từ 0 (LSB) đến 31 (MSB) --- Lưu ý rằng trường này được lưu trữ với nguồn Endianness, như tất cả các trường số nguyên tiếp theo. Bit 16-31 được bảo lưu để biểu thị định dạng tệp quan trọng vấn đề; kèo bóng đá c1 người đọc nên hủy bỏ nếu nó tìm thấy kèo bóng đá c1 Bit đặt trong phạm vi này. Bit 0-15 được bảo lưu để tín hiệu Các vấn đề định dạng tương thích ngược; kèo bóng đá c1 người đọc nên Chỉ cần bỏ qua bất kỳ bit bất ngờ được đặt trong phạm vi này. Hiện tại chỉ có kèo bóng đá c1 bit cờ được xác định và phần còn lại Phải bằng không:

bit 16

Nếu 1, oids được bao gồm trong bãi rác; Nếu 0, không

Độ dài diện tích mở rộng tiêu đề

độ dài int32 trong byte còn lại của tiêu đề, không bao gồm cả bản thân. Trong phiên bản ban đầu, điều này sẽ Không, và bộ tuple đầu tiên theo sau ngay lập tức. Tương lai Các thay đổi theo định dạng có thể cho phép dữ kèo bóng đá c1 bổ sung hiện diện trong tiêu đề. Một người đọc nên âm thầm bỏ qua Trên bất kỳ dữ kèo bóng đá c1 mở rộng tiêu đề nào, nó không biết phải làm gì làm với.

Vùng mở rộng tiêu đề được hình dung là chứa kèo bóng đá c1 Trình tự các khối tự nhận dạng. Trường Cờ không dự định nói với độc giả những gì trong khu vực mở rộng. Thiết kế cụ thể của nội dung mở rộng tiêu đề được để lại cho kèo bóng đá c1 Phát hành sau.

Thiết kế này cho phép cả tiêu đề tương thích ngược Bổ sung (Thêm phần mở rộng tiêu đề hoặc đặt cờ bậc thấp BITS) và các thay đổi không tương thích không phù hợp (đặt thứ tự cao cờ các bit để báo hiệu những thay đổi đó và thêm dữ kèo bóng đá c1 hỗ trợ vào khu vực mở rộng nếu cần).

Tuples

Mỗi tuple bắt đầu với số lượng int16 của số lượng Các lĩnh vực trong tuple. (Hiện tại, tất cả các bộ dữ kèo bóng đá c1 trong bàn sẽ Có cùng một số lượng, nhưng điều đó có thể không phải lúc nào cũng đúng.) Sau đó, lặp lại cho mỗi trường trong tuple, có một int16 Typlen Word có thể theo sau là dữ kèo bóng đá c1 trường. Trường Typlen được giải thích như vậy:

Zero

Trường là null. Không có dữ kèo bóng đá c1 theo sau.

0

Trường là kiểu dữ kèo bóng đá c1 có độ dài cố định. Chính xác n byte của Dữ kèo bóng đá c1 theo từ Typlen.

-1

Trường là kiểu dữ kèo bóng đá c1 Varlena. Bốn byte tiếp theo là Tiêu đề Varlena, chứa tổng giá trị độ dài bao gồm chính nó.

<-1

dành riêng cho việc sử dụng trong tương lai.

Đối với các trường không null, người đọc có thể kiểm tra xem Typlen khớp với typlen dự kiến ​​cho cột đích. Cái này cung cấp một kiểm tra đơn giản nhưng rất hữu ích rằng dữ kèo bóng đá c1 là hy vọng.

Không có phần đệm căn chỉnh hoặc bất kỳ dữ kèo bóng đá c1 bổ sung nào khác giữa các lĩnh vực. Cũng lưu ý rằng định dạng không phân biệt xem kiểu dữ kèo bóng đá c1 có được chuyển qua từng lần hay qua giá trị. Cả hai điều khoản này đều có chủ ý: họ có thể giúp cải thiện tính di động của các tệp (mặc dù Khóa học các vấn đề về độ cuối và định dạng điểm nổi vẫn có thể Giữ cho bạn không di chuyển một tệp nhị phân trên các máy).

Nếu OID được bao gồm trong bãi rác, trường OID Ngay lập tức theo từ số đồng trường. Nó là kèo bóng đá c1 bình thường Trường ngoại trừ việc nó không được bao gồm trong số đồng hồ. TRONG đặc biệt nó có kèo bóng đá c1 typlen --- điều này sẽ cho phép xử lý 4 byte vs 8 byte oids mà không có quá nhiều đau đớn, và sẽ cho phép Oids được hiển thị là null nếu kèo bóng đá c1 ngày nào đó chúng ta cho phép oids không bắt buộc.

Đoạn giới thiệu tập tin

Trailer tệp bao gồm kèo bóng đá c1 từ int16 chứa -1. Điều này dễ dàng được phân biệt với số lần đếm trường của kèo bóng đá c1 tuple từ.

Người đọc sẽ báo cáo lỗi nếu từ số đặt trường Không -1 và số lượng cột dự kiến. Điều này cung cấp một kiểm tra bổ sung chống lại bằng cách nào đó thoát khỏi sự đồng bộ với dữ kèo bóng đá c1.

sử dụng

Ví dụ sau đây kèo bóng đá c1 bảng thành đầu ra tiêu chuẩn, sử dụng một thanh dọc (|) là dấu phân cách trường:

kèo bóng đá c1 quốc gia thànhstdoutSử dụng Delimiters '|';

Để kèo bóng đá c1 dữ liệu từ tệp Unix vào một quốc gia bảng:

kèo bóng đá c1 quốc gia từ '/usr1/proj/bray/sql/country_data';

Đây là một mẫu dữ liệu phù hợp để kèo bóng đá c1 vào bảng từstdin(Vì vậy, nó có sự chấm dứt Trình tự trên dòng cuối cùng):

Afghanistan
Al Albania
DZ Algeria
ZM Zambia
ZW Zimbabwe
\.

Lưu ý rằng khoảng trắng trên mỗi dòng thực sự là kèo bóng đá c1 tab.

Sau đây là cùng một dữ kèo bóng đá c1, đầu ra ở định dạng nhị phân trên A Máy Linux/i586. Dữ kèo bóng đá c1 được hiển thị sau khi lọc qua UNIX Tiện íchOD -C. Bảng có ba lĩnh vực; Đầu tiên làchar (2), thứ hai làTextvà thứ ba làSố nguyên. Tất cả các hàng có giá trị null trong lần thứ ba cánh đồng.

0000000 p g b c o p y \ n 377 \ r \ n \ 0 004 003 002 001
0000020 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 003 \ 0 377 377 006 \ 0 \ 0 \ 0
0000040 A F 377 377 017 \ 0 \ 0 \ 0 A F G H A N I S
0000060 t a n \ 0 \ 0 003 \ 0 377 377 006 \ 0 \ 0 \ 0 a l 377
0000100 377 \ v \ 0 \ 0 \ 0 a l b a n i a \ 0 \ 0 003 \ 0
0000120 377 377 006 \ 0 \ 0 \ 0 D Z 377 377 \ V \ 0 \ 0 \ 0 A L
0000140 g e r i a \ 0 \ 0 003 \ 0 377 377 006 \ 0 \ 0 \ 0 Z
0000160 m 377 377 \ n \ 0 \ 0 \ 0 z a m b i a \ 0 \ 0 003
0000200 \ 0 377 377 006 \ 0 \ 0 \ 0 Z W 377 377 \ f \ 0 \ 0 \ 0 Z Z
0000220 I M B A B W E \ 0 \ 0 377 377

Tương thích

SQL92

Không cóCopyCâu lệnh trong SQL92.