我最近一直在玩PostgreSQL,并且无法理解如何备份和恢复单个表。
我使用pgadmin3备份数据库中的单个表,以便将其复制到其他服务器。当我尝试对文件执行pg_restore时,我收到错误消息,指出该序列不存在:
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...
看起来转储文件不包含我的自动递增列的序列。如何将其包括在内?
答案 0 :(得分:15)
仅按表转储 - 仅转储表。除了表之外,还需要单独转储序列。
如果你不知道你的序列,你可以在psql中用\d yourtable
列出它。您将看到序列所在行中的某些内容,如:nextval('yourtable_id_seq'::regclass')
然后从命令行pgdump -t yourtable_id_seq