【问题标题】:How to import existing *.sql files in PostgreSQL 8.4?如何在 PostgreSQL 8.4 中导入现有的 *.sql 文件?
【发布时间】:2011-03-24 13:33:29
【问题描述】:

我使用的是 PostgreSQL 8.4,我有一些 *.sql 文件要导入数据库。我该怎么做?

【问题讨论】:

    标签: postgresql import


    【解决方案1】:

    从命令行:

    psql -f 1.sql
    psql -f 2.sql
    

    来自psql 提示:

    \i 1.sql
    \i 2.sql
    

    请注意,您可能需要按特定顺序导入文件(例如:数据操作之前的数据定义)。如果你有bash shell (GNU/Linux, Mac OS X, Cygwin)文件可以按字母顺序导入,你可以使用这个命令:

    for f in *.sql ; do psql -f $f ; done
    

    这是 psql 应用程序的文档(感谢 Frank):http://www.postgresql.org/docs/current/static/app-psql.html

    【讨论】:

    • @moon 也许您没有访问 SQL 文件的权限?你用的是什么操作系统?
    • @moon 这是与您的 PostgreSQL 用户关联的密码(用户密码对存储在 PostgreSQL 中)。
    • @moon 我建议你把你的问题分成三个阶段:1)确保你可以让psql运行。 2) 确保您的用户具有必要的写入权限,例如:CREATEINSERTUPDATE 等。 3) 导入 SQL 文件。据我了解,您现在处于第 1 阶段。
    • @Bolo:你会把这三个阶段放到答案中吗?
    • @Bolo ,正如你所提到的,我现在处于第三步。但是我如何从本地机器导入 .sql 文件。我尝试了 \i [带扩展名的完整路径],但我收到错误消息 .sql no such file or directory。能否举个例子。
    【解决方案2】:

    在命令行中首先到达 psql 所在的目录,然后编写如下命令:

    psql [database name] [username]
    

    然后按回车 psql 询问密码 给用户密码:

    然后写

    > \i [full path and file name with extension]
    

    然后按回车插入完成。

    【讨论】:

    • 我也用这个。它有效。但是,我更改了提供的 SQL 语句。以前现有的 *.sql 没有使用任何字符;作为一条线的终点。而且我还必须删除 GO。你觉得sql脚本不是psql脚本吗?
    • 我尝试使用 \i [带扩展名的完整路径] 但我收到错误消息 .sql no such file or directory。能否请您上传一个示例。谢谢。
    • 如果 \i 说没有这样的文件,那么它没有在那个位置找到文件。最好给出绝对 URL。对于 Windows 上的我来说,这个命令行有效:\i /tmp/robert/test.sql 当然,你必须在该文件中有有效的 SQL 命令。
    【解决方案3】:

    嗯,我所知道的最短方法如下:

    psql -U {user_name} -d {database_name} -f {file_path} -h {host_name}
    

    database_name:您应该在哪个数据库中插入文件数据。

    file_path:要执行导入的文件的绝对路径。

    host_name:主机的名称。出于开发目的,多为localhost

    在控制台中输入此命令后,系统会提示您输入密码。

    【讨论】:

      【解决方案4】:

      小心使用“/”和“\”。即使在 Windows 上,命令也应采用以下形式:

      \i c:/1.sql
      

      【讨论】:

        【解决方案5】:

        始终首选使用connection service file(查找/google 'psql 连接服务文件')

        那么简单:

        psql service={yourservicename} < {myfile.sql}
        

        其中yourservicename 是服务文件中的部分名称。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-01-06
          • 2014-05-03
          相关资源
          最近更新 更多