问题
Windows11在Navicat17中导入PostgreSQL脚本(.sql)报错"Cannot query the result. COPY statement is not supported."
如图
使用pgAdmin也是无法完整导入。
原因
在线查找原因,当前环境环境不支持copy语法。
解决方法
使用psql命令行工具解决(前提是配置好PostgreSQL数据库环境变量)
检查表和数据
使用psql命令行工具导入脚本文件
psql -U 用户名 -d 数据库名 -f 文件路径
执行完成之后可以进行校验
使用 \dt
命令列出所有表
\dt
确认所需的表是否存在。
使用 \d
命令查看表结构:
\d public.表名
查询表中的数据:
SELECT * FROM public.表名 LIMIT 10;
检查错误日志
查看 PostgreSQL 的错误日志文件,通常位于 /var/log/postgresql/
(Linux)或 C:\Program Files\PostgreSQL\[version]\data\pg_log\
(Windows),以确认是否有任何错误或警告。
重新运行导入命令
psql -U 用户名 -d 数据库名 -f 文件路径
检查文件内容
对照sql脚本检查导入数据是否误差。
示例流程
通过 psql
连接数据库并检查表和数据
连接到数据库:
psql -U postgres -d test
列出所有表:
\dt
查看表结构
\d public.account
PostgreSQL配置环境变量
1.找到系统高级变量设置(设置>系统信息>系统高级设置)
2.在系统属性弹框的高级tab栏选择环境变量
3.在系统变量模块选择【新建】,变量名:PGDATA(自己取);变量值:C:\Program Files\PostgreSQL\版本号\data(自己PG的安装路径)
4.在系统变量模块选择【Path】,进入编辑环境变量弹框,【新建】,D:\Program Files\PostgreSQL\版本号\bin(自己PG的安装路径)
5.点击确定
6.校验(在命令行执行psql语法即可)
评论区