我想在PostgreSQL中导入一个sql文件。我正在使用pgadmin iii。我在phpmyadmin中创建一个sql文件,现在我想在pgadmin iii中导入相同的文件。 我正在做以下但它对我不起作用。 我在pgadmin iii中选择数据库的模式,之后我尝试执行以下查询:
\i C:/Users/umair/Downloads/school_management_system(1).sql
但它会产生错误,错误是:
ERROR: syntax error at or near "\"
LINE 1: \i C:/Users/umair/Downloads/school_management_system(1).sql
^
********** Error **********
ERROR: syntax error at or near "\"
SQL state: 42601
Character: 1
请帮帮我。
答案 0 :(得分:17)
我认为导入sql文件的最佳方法是使用psql
工具,如下所示:
psql -U postgres -h localhost -d my_database -f "C:/Users/umair/Downloads/school_management_system(1).sql"
答案 1 :(得分:10)
您无法通过pgAdmin导入普通的* sql文件。它仅支持通过(pg_restore创建的自定义导入 - pgAdmin在后台使用)。
您应该使用command line,而不是pgAdmin来执行此任务。您对另一个答案的评论表明您从pgAdmin执行了该命令。这不起作用。
psql -U username -h localhost -d database_name < path/to/your/file.sql
请注意,-h是可选的,它取决于您连接系统的方式。
答案 2 :(得分:1)
在Windows上,我只能从常规CMD控制台窗口运行psql命令,而不是像我安装git时那样从bash窗口运行。您应该在某个地方安装psql.exe,例如C:\ Program Files \ PostgreSQL \ 9.4 \ bin。
答案 3 :(得分:0)
@DrColossos是正确的。您必须在包含psql.exe可执行文件的目录中的命令行中使用该命令。
请记住,如果使用此命令替换系统上已有的数据库,则必须在运行命令之前删除该数据库。
如果在运行命令后遇到奇怪的索引问题,请参阅this tutorial有关如何修复它的信息。
答案 4 :(得分:0)
如果您在Windows上,请使用pgsql Shell 输入您的服务器和数据库以及用户信息,然后运行而无需引号
\i D:/folder/your_table.sql