【发布时间】:2011-03-24 13:33:29
【问题描述】:
我使用的是 PostgreSQL 8.4,我有一些 *.sql 文件要导入数据库。我该怎么做?
【问题讨论】:
标签: postgresql import
我使用的是 PostgreSQL 8.4,我有一些 *.sql 文件要导入数据库。我该怎么做?
【问题讨论】:
标签: postgresql import
从命令行:
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
【讨论】:
psql运行。 2) 确保您的用户具有必要的写入权限,例如:CREATE、INSERT、UPDATE 等。 3) 导入 SQL 文件。据我了解,您现在处于第 1 阶段。
在命令行中首先到达 psql 所在的目录,然后编写如下命令:
psql [database name] [username]
然后按回车 psql 询问密码 给用户密码:
然后写
> \i [full path and file name with extension]
然后按回车插入完成。
【讨论】:
嗯,我所知道的最短方法如下:
psql -U {user_name} -d {database_name} -f {file_path} -h {host_name}
database_name:您应该在哪个数据库中插入文件数据。
file_path:要执行导入的文件的绝对路径。
host_name:主机的名称。出于开发目的,多为localhost。
在控制台中输入此命令后,系统会提示您输入密码。
【讨论】:
小心使用“/”和“\”。即使在 Windows 上,命令也应采用以下形式:
\i c:/1.sql
【讨论】:
始终首选使用connection service file(查找/google 'psql 连接服务文件')
那么简单:
psql service={yourservicename} < {myfile.sql}
其中yourservicename 是服务文件中的部分名称。
【讨论】: