如何在PostgreSQL 8.4中导入现有的* .sql文件?

时间:2010-08-03 06:07:30

标签: postgresql import

我正在使用PostgreSQL 8.4,并且我有一些* .sql文件要导入到数据库中。我怎么能这样做?

5 个答案:

答案 0 :(得分:132)

从命令行:

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

答案 1 :(得分:73)

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

psql [database name] [username]

然后按enter psql要求输入密码给用户密码:

然后写

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

然后按Enter键完成插入。

答案 2 :(得分:32)

嗯,我所知道的最短路径是:

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

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

file_path:您要通过其执行导入的文件的绝对路径。

host_name:主机的名称。出于开发目的,它主要是localhost

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

答案 3 :(得分:23)

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

\i c:/1.sql

答案 4 :(得分:1)

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

然后简单地说:

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

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