pg_dump忽略表序列?

dem*_*sus 15 postgresql pg-dump pg-restore

我最近一直在玩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...
Run Code Online (Sandbox Code Playgroud)

看起来转储文件不包含我的自动递增列的序列.如何将其包括在内?

nat*_*e c 19

仅按表转储 - 仅转储表.除了表之外,还需要单独转储序列.

如果你不知道你的序列,你可以\d yourtable在psql中列出它.您将看到序列所在行中的某些内容,如下所示:nextval('yourtable_id_seq'::regclass')

然后从命令行, pgdump -t yourtable_id_seq

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

  • 不,但是您可以指定多个-t开关。像这样:pgdump -t mytable -t mytabl_id_seq (2认同)