%POSTGRE_HOME%\bin\pg_dump -p 5432 -a -d -t table1 -U postgres AAA> %SCRIPT_HOME%\AAA.dat将数据库AAA的表table1到出到AAA.dat文件中如何将AAA.dat的数据导入到数据库BBB的表table2中,希望大家指教
%POSTGRE_HOME%\bin\pg_restore -a -i -d BBB -t table2 AAA.dat这是我写的,但是运行时报错 input file doest not appear to be a valid archive.

解决方案 »

  1.   

    pg_dump有2种格式,archive格式, 要加参数 -Fc, 用pg_restore恢复
    明文格式,用psql执行恢复
      

  2.   

    用psql执行恢复时能将数据导入到指定的table中吗?
      

  3.   

    印象里这种方式不能按table恢复,你试试c模式
      

  4.   

    set SCRIPT_HOME=.\%POSTGRE_HOME%\bin\pg_dump -a -t table1 AAA> %SCRIPT_HOME%\AAA.sql
    %POSTGRE_HOME%\bin\psql -d BBB -U pgdev < copy table2 to 'AAA.sql'换了种方式,但是报错:系统找不到指定的文件,copy table2 to 'AAA.sql'这样写有错误吗?
    我换成copy table2 to %SCRIPT_HOME%\'AAA.sql'也不行
    请教一下,这个东西我今天才接触,有写陌生
      

  5.   

    %POSTGRE_HOME%\bin\psql -d BBB -U pgdev < copy table2 to 'd:\AAA.csv'
    将文件输出到d:\  ,还是报系统找不到指定的文件请问是什么原因?
      

  6.   

    POSTGRE_HOME%\bin\psql -d BBB -U pgdev < type AAA.sql
      

  7.   

    不需要type,直接 < 后面是文件名