使用 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 的更多详细信息,请访问此处