2015-07-08 24 views
21

Chúng tôi sử dụng lệnh sao chép để sao chép dữ liệu của một bảng vào tệp bên ngoài cơ sở dữ liệu.Làm cách nào để sao chép dữ liệu từ bảng này sang bảng khác trong postgres bằng lệnh sao chép

Có thể sao chép dữ liệu của một bảng sang bảng khác bằng lệnh không.

Nếu có, bất kỳ ai cũng có thể chia sẻ truy vấn.

Hoặc có cách tiếp cận nào tốt hơn như chúng tôi có thể sử dụng pg_dump hay gì đó tương tự.

Đánh giá cao sự trợ giúp của bạn.

Kính trọng, Mohit

+0

Không cần lệnh sao chép: 'chèn vào khác (col1, col2) chọn col1, col2 từ một ' –

+0

Thời gian sử dụng sao chép/kết xuất là khi di chuyển dữ liệu giữa cơ sở dữ liệu * chưa kết nối (sử dụng tệp dưới dạng tạm thời) . Nếu các bảng nằm trong cùng một cơ sở dữ liệu thì không cần thiết cho điều này. – user2864740

+0

Cảm ơn bạn đã trả lời nhưng tôi chỉ tò mò nếu có thể sao chép dữ liệu từ bảng này sang bảng khác bằng cách sử dụng lệnh sao chép. Nếu có thì làm thế nào? – Mohitd23

Trả lời

41

Bạn không thể dễ dàng làm điều đó, nhưng cũng có không cần phải làm như vậy.

CREATE TABLE mycopy AS 
SELECT * FROM mytable; 

hoặc

CREATE TABLE mycopy (LIKE mytable INCLUDING ALL); 

INSERT INTO mycopy 
SELECT * FROM mytable; 

Nếu bạn cần phải chọn chỉ một số cột hoặc sắp xếp lại chúng, bạn có thể làm điều này:

INSERT INTO mycopy(colA, colB) 
SELECT col1, col2 FROM mytable; 

Bạn cũng có thể làm một pg_dump chọn lọc và phục hồi của chỉ bảng mục tiêu.

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