2011-01-05 24 views
9

Gần đây tôi đã chơi với PostgreSQL và không hiểu cách sao lưu và khôi phục một bảng.pg_dump bỏ qua trình tự bảng?

Tôi đã sử dụng pgadmin3 để sao lưu một bảng trong cơ sở dữ liệu của mình, để sao chép nó vào một máy chủ khác. Khi tôi cố gắng để làm một pg_restore vào file, tôi nhận được thông báo lỗi nói rằng chuỗi không tồn tại:

pg_restore: [archiver (db)] could not execute query: ERROR: relation "businesses_id_seq" does not exist 
    Command was: 
CREATE TABLE businesses (
    id integer DEFAULT nextval('businesses_id_seq'::regclass) NOT NULL, 
    name character varyin... 

Dường như các tập tin dump không bao gồm các chuỗi cho ô tô của tôi incrementing cột. Làm thế nào để tôi đưa nó vào đó?

Trả lời

12

bán phá giá theo bảng - sẽ chỉ đổ bảng. Bạn cần phải tách riêng chuỗi thứ tự ngoài bảng.

Nếu bạn không biết trình tự của mình, bạn có thể liệt kê nó bằng \d yourtable trong psql. Bạn sẽ thấy một cái gì đó ở hàng chuỗi của bạn nằm trên trông giống như: nextval('yourtable_id_seq'::regclass')

Sau đó từ dòng lệnh, pgdump -t yourtable_id_seq

http://www.postgresql.org/docs/9.0/static/app-pgdump.html

+0

Bạn có biết nếu tôi có thể xác định một dấu phẩy sau cờ -t th? Như thế này: pgdump -t mytable, mytabl_id_seq – demersus

+0

Không, nhưng bạn có thể chỉ định nhiều công tắc -t. Như thế này: pgdump -t mytable -t mytabl_id_seq – phord

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