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

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

Badr asked 2019-08-13T23:46:04Z
5个解决方案
132 votes

从命令行:

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

psql提示:

\i 1.sql
\i 2.sql

请注意,您可能需要按特定顺序导入文件(例如:数据操作前的数据定义)。 如果您有psql 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]

Bolo answered 2019-08-13T23:46:34Z
72 votes

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

psql [database name] [username]

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

然后写

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

然后按Enter enter done。

Badr answered 2019-08-13T23:47:14Z
32 votes

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

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

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

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

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

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

Arslan Ali answered 2019-08-13T23:48:07Z
22 votes

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

\i c:/1.sql
sofiane answered 2019-08-13T23:48:31Z
1 votes

始终首选使用连接服务文件(lookup / google' psql连接服务文件')

那简单地说:

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

其中yourservicename是服务文件中的节名。

Ted Rybicki answered 2019-08-13T23:49:05Z
translate from https://stackoverflow.com:/questions/3393961/how-to-import-existing-sql-files-in-postgresql-8-4