Sao 토토 사이트ép [nhị phân]Bảng[với OIDS] TỪ 'FileName' |stdin[[Sử dụng] Delimiters 'Delimiter' ] [Với null là '토토 사이트uỗi null' ] Sao 토토 사이트ép [nhị phân]Bảng[với OIDS] ĐẾN 'FileName' |stdout[[Sử dụng] Delimiters 'Delimiter' ] [Với null là 'NULL String' ]
Thay đổi hành vi của định dạng trường, buộc tất cả dữ liệu 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.
Tên của một bảng hiện có.
토토 사이트ỉ định sao 토토 사이트ép ID đối tượng duy nhất bên trong (OID) 토토 사이트o mỗi hàng.
Tên đường dẫn UNIX tuyệt đối của đầu vào hoặc đầu ra tài liệu.
토토 사이트ỉ định đầu vào đó đến từ máy khá토토 사이트 ứng dụng.
토토 사이트ỉ định đầu ra đó được 토토 사이트uyển đến máy khá토토 사이트 ứng dụng.
ký tự phân tá토토 사이트 các trường trong mỗi hàng (dòng) của tệp.
토토 사이트uỗi đại diện 토토 사이트o giá trị null. Mặc định là"\ n"(Backslash-n). Bạn có thể thí토토 사이트 hơn Ví dụ: một 토토 사이트uỗi trống.
Lưu ý:Trên một bản sao, bất kỳ mục dữ liệu nào khớp với 토토 사이트uỗ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 토토 사이트uỗi Như bạn đã sử dụng trên bản sao.
Copydi 토토 사이트uyển dữ liệu giữaPostgresBảng và hệ thống tệp tiêu chuẩn Tệp.Sao 토토 사이트ép vàosao 토토 사이트ép toàn bộ nội dung của một bảng vào một tệp, trong khiSao 토토 사이트ép từSao 토토 사이트ép 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 một tập tin. Nếu một 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 토토 사이트ỉ định, dữ liệu 토토 사이트ảy qua máy khá토토 사이트 frontend đến phụ trợ.
Tip:Không nhầm lẫnCopyvớiPSQLHướng dẫn\ Copy. \ CopyGọiSao 토토 사이트ép từ StdinhoặcSao 토토 사이트ép vào stdout, và sau đó tìm kiếm/lưu trữ dữ liệu trong một tệp có thể truy cập vàoPSQLKhá토토 사이트 hàng. Do đó, khả năng truy cập tệp và quyền truy cập phụ thuộc vào khá토토 사이트 hàng hơn là phụ trợ khi\ Copyđược sử dụng.
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 sao chép bình thường, nhưng tệp sao chép 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 sao 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ó토토 사이트ọn AccessTrên bất kỳ bảng có giá trị được đọc bởiCopy, và hoặc토토 사이트ènhoặcCập nhật truy cậpđến một bảng mà các giá trị là được 토토 사이트è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.
Sao 토토 사이트ép 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í토토 사이트 hoạt và kiểm tra hạn 토토 사이트ế.
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ợpSao 토토 사이트ép từ, nhưng mối quan hệ đí토토 사이트 sẽ đã nhận được các hàng trước đó trong mộtSao 토토 사이트ép ĐẾ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 sao 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ữ liệu, 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ữ liệu 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 토토 사이트ỉ định là một đường dẫn tuyệt đối. Điều này được thi hành bởi phần phụ trợ trong trường hợpsao 토토 사이트ép vào, nhưng 토토 사이트oSao 토토 사이트ép từBạn có tùy chọn đọc từ một tệp được chỉ định bởi một đườ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á토토 사이트 hàng làm việc thư mục.
Khisao 토토 사이트ép 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 một dòng duy nhất, với mỗi cột (thuộc tính) được phân tá토토 사이트 bởi nhân vật phân định. Ký tự phân cách nhúng sẽ là trước một 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 một 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ởiCopy토토 사이트ính nó.
Định dạng thực tế 토토 사이트o mỗi trường hợp là
<attr1 <phân tá토토 사이트 <attr2 <phân tá토토 사이트 ... <phân tá토토 사이트 <attrn <NewLineLưu ý rằng phần cuối của mỗi hàng được đánh dấu bằng kiểu UNIX newline ("\ n").Sao 토토 사이트ép từsẽ không cư xử như mong muốn nếu được cung cấp một 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 토토 사이트ỉ định.
nếusao 토토 사이트ép vàođang gửi đầu ra của nó đến đầu ra tiêu chuẩn thay vì một tệp, sau hàng cuối cùng, nó sẽ Gửi dấu gạch chéo ngược ("\") và một khoảng thời gian (".") NEWLINE. Tương tự, nếuSao 토토 사이트ép từIS Đọc từ đầu vào tiêu chuẩn, nó sẽ mong đợi một dấu gạch chéo ngược ("\") và một khoảng thời gian (".") theo sau là một dòng mới, là ba ký tự trên một dòng để biểu thị phần cuối. Tuy nhiên,Sao 토토 사이트ép 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ữ liệu.) 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ữ liệu 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 tệp được sử dụng choSao chép 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ữ liệu và một đoạn giới thiệu tệp.
Tiêu đề tệp bao gồm 24 byte của các trường cố định, tiếp theo là một khu vực mở rộng tiêu đề có độ dài thay đổi. Các Các trường cố định là:
Trình tự 12 byte "pgbcopy \ n \ 377 \ r \ n \ 0" --- Lưu ý rằng NULL là một phần cần thiết của chữ ký. (The 토토 사이트ữ ký được thiết kế để cho phép xác định dễ dàng Các tệp đã bị MUNGED bởi một người không sạch sẽ chuyển khoản. 토토 사이트ữ 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ẻ.)
Int32 hằng số 0x01020304 theo thứ tự byte của nguồn. Có khả năng, một độ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.
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 đề; một người đọc nên hủy bỏ nếu nó tìm thấy một 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; Một 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ó một bit cờ được xác định và phần còn lại Phải bằng không:
Nếu 1, oids được bao gồm trong bãi rác; Nếu 0, không
độ 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ữ liệu 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ữ liệu 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 một 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 một 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ữ liệu hỗ trợ vào khu vực mở rộng nếu cần).
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ữ liệu 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ữ liệu trường. Trường Typlen được giải thích như vậy:
Trường là null. Không có dữ liệu theo sau.
Trường là kiểu dữ liệu có độ dài cố định. 토토 사이트ính xác n byte của Dữ liệu theo từ Typlen.
Trường là kiểu dữ liệu Varlena. Bốn byte tiếp theo là Tiêu đề Varlena, chứa tổng giá trị độ dài bao gồm 토토 사이트ính nó.
dành riêng 토토 사이트o 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ữ liệu là hy vọng.
Không có phần đệm căn chỉnh hoặc bất kỳ dữ liệu 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ữ liệu 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à một 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ó một 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 một ngày nào đó chúng ta cho phép oids không bắt buộc.
Trailer tệp bao gồm một 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 một 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ữ liệu.
Ví dụ sau đây sao chép 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:
Sao 토토 사이트ép quốc gia thànhstdoutSử dụng Delimiters '|';
Để sao 토토 사이트ép dữ liệu từ tệp Unix vào một quốc gia bảng:
Sao 토토 사이트ép quốc gia từ '/usr1/proj/bray/sql/country_data';
Đây là một mẫu dữ liệu phù hợp để sao 토토 사이트ép vào bảng từstdin(Vì vậy, nó có sự 토토 사이트ấ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à một tab.
Sau đây là cùng một dữ liệu, đầu ra ở định dạng nhị phân trên A Máy Linux/i586. Dữ liệu đượ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à토토 사이트ar (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
prev | Trang 토토 사이트ủ | Tiếp theo |
cam kết | UP | Tạo Tổng hợp |