使用 COPY 插入資料

COPY 是 PostgreSQL 的批量插入機制。這是在檔案和表之間傳輸資料的便捷方式,但是當一次新增超過幾千行時,它也比 INSERT 快得多。

讓我們從建立示例資料檔案開始。

cat > samplet_data.csv

1,Yogesh
2,Raunak
3,Varun
4,Kamal
5,Hari
6,Amit

我們需要一個兩列表,可以將這些資料匯入其中。

CREATE TABLE copy_test(id int, name varchar(8));

現在實際的複製操作,這將在表中建立六條記錄。

COPY copy_test FROM '/path/to/file/sample_data.csv' DELIMITER ',';

可以從 stdin 插入資料,而不是在磁碟上使用檔案

COPY copy_test FROM stdin DELIMITER ',';
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 7,Amol
>> 8,Amar
>> \.
Time: 85254.306 ms

SELECT * FROM copy_test ;
 id |  name
----+--------
  1 | Yogesh
  3 | Varun
  5 | Hari
  7 | Amol
  2 | Raunak
  4 | Kamal
  6 | Amit
  8 | Amar

你還可以將資料從表複製到檔案,如下所示:

COPY copy_test TO 'path/to/file/sample_data.csv'  DELIMITER ',';

有關 COPY 的更多詳細資訊,請訪問此處