Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将windows上的.sql文件导入postgresql_Sql_Windows_Postgresql_Import - Fatal编程技术网

将windows上的.sql文件导入postgresql

将windows上的.sql文件导入postgresql,sql,windows,postgresql,import,Sql,Windows,Postgresql,Import,我有一个.sql文件,它是postgresql不久前创建的。我现在想将此文件导入到运行postgresql的windows计算机上 我该怎么做呢。该文件大约为1.5gb。您应该使用命令行工具: psql -h hostname -p port_number -U username -f your_file.sql databasename 这也适用于我: psql dbname username < file.sql psql dbname username

我有一个.sql文件,它是postgresql不久前创建的。我现在想将此文件导入到运行postgresql的windows计算机上

我该怎么做呢。该文件大约为1.5gb。

您应该使用命令行工具:

psql -h hostname -p port_number -U username -f your_file.sql databasename 

这也适用于我:

psql dbname username < file.sql
psql dbname username
单击SQL Shell并登录数据库并使用导入

Server [localhost]:
Database [postgres]:
Port [5432]:
Username [postgres]:
Password for user postgres:
psql (9.2.4)
WARNING: Console code page (437) differs from Windows code page (1252)
         8-bit characters might not work correctly. See psql reference
         page "Notes for Windows users" for details.
Type "help" for help.

postgres=# \i c:/data/data01.sql

启动psql命令工具,它将为您提供如下对话框

Server [localhost]:
Database [postgres]:
Port [5432]:yourport
Username [postgres]:
Password for user postgres:**********
然后连接到您的数据库

postgres=# \c yourdatabase;
然后导入文件

yourdatabase=# \i c:/path/path/data/data01.sql
注意/for目录分隔符&文件路径中没有空格

打开并键入以下内容(确保postgres的路径正确)

“C:\ProgramFiles\PostgreSQL\9.4\bin\psql.exe”-h 127.0.0.1-p 5432-U postgres-d dbname
psql-U
如果提示让您输入密码,请执行此操作。
\c
\i'路径/delimiter.sql'
你需要注意两点

  • 使用
    /
    作为文件的写入路径,而不是
    \
  • 使用单引号 符号
    而不是

如果使用URI连接字符串执行此操作,请确保参数位于URI之前,Powershell示例:

在windows上工作:

.\psql -f TestFile.sql $connString

.\psql -c 'SELECT Version();' $connString
无法在windows上工作(URI连接在参数之前):

只需注意一点:“好的观点。我已经用了这么长时间,我忘记了它们的区别!注意倒“/”符号,而不是Windows中通常使用的“\”。这给了我“C::Permission denied”,我也尝试过更换磁盘。即使以管理员身份运行,也没有得到修复。请确认您使用的是“/”而不是上面提到的“\”@jakub。这是非常重要的。如果有空格,请用引号将路径括起来
.\psql -f TestFile.sql $connString

.\psql -c 'SELECT Version();' $connString
.\psql $connString -c 'SELECT Version();'