我正在使用PostgreSQL 8.4,并且我有一些* .sql文件要导入到数据库中。我怎么能这样做?
答案 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
是服务文件中的部分名称。