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

Bad*_*adr 96 postgresql import

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

Bol*_*olo 134

从命令行:

psql -f 1.sql
psql -f 2.sql
Run Code Online (Sandbox Code Playgroud)

psql提示:

\i 1.sql
\i 2.sql
Run Code Online (Sandbox Code Playgroud)

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

for f in *.sql ; do psql -f $f ; done
Run Code Online (Sandbox Code Playgroud)

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

  • @moon我建议你将问题分成三个阶段:1)确保你可以运行`psql`.2)确保您的用户具有必要的写权限,例如:`CREATE`,`INSERT`,`UPDATE`等.3)导入SQL文件.据我了解,你现在处于第一阶段. (8认同)

Bad*_*adr 75

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

psql [database name] [username]
Run Code Online (Sandbox Code Playgroud)

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

然后写

> \i [full path and file name with extension]
Run Code Online (Sandbox Code Playgroud)

然后按Enter enter done.


Ars*_*Ali 33

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

psql -U {user_name} -d {database_name} -f {file_path} -h {host_name}
Run Code Online (Sandbox Code Playgroud)

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

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

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

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


小智 25

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

\i c:/1.sql
Run Code Online (Sandbox Code Playgroud)