2011-10-27 32 views
27

Tôi có tệp CSV có hai cột: thành phố và mã zip. Tôi muốn có thể sao chép tệp này vào bảng PostgreSQL bằng cách sử dụng lệnh copy và đồng thời tự động tạo giá trị id.Lệnh sao chép PostgreSQL tạo id khóa chính

Bảng có các cột sau: id, cityzipcode.

Tệp CSV của tôi chỉ có: cityzipcode.

Trả lời

43

Các COPY command nên làm điều đó tất cả bởi chính nó nếu bảng của bạn sử dụng một cột serial cho id:

Nếu có bất kỳ cột trong bảng mà không phải là trong danh sách cột, sao chép từ sẽ chèn giá trị mặc định cho các cột đó.

Vì vậy, bạn sẽ có thể nói:

copy table_name(city, zipcode) from ... 

id sẽ được tạo ra như bình thường. Nếu bạn không có cột serial cho id (hoặc chuỗi được đính kèm theo cách thủ công), thì bạn có thể treo một chuỗi bằng tay, thực hiện COPY và sau đó tách chuỗi.

+0

Đây là cách tôi sao chép dữ liệu từ CSV sang Postgres: \ copy company_infos (email, url, created_at, updated_at) FROM '/Users/john/company_infos_heroku4.csv' WITH (FORMAT csv, HEADER true); – yaru

Các vấn đề liên quan