PostgreSQL数据仅导出脚本执行报错:ERROR: syntax error at or near '\.'
解决psql执行仅数据导出文件时的"."语法错误问题
1. 修正psql执行命令的参数
你当前使用小写-u指定用户名,但PostgreSQL的psql工具中,正确指定用户名的参数是大写-U。错误的参数会导致psql无法正确解析文件中的psql元命令(如\.),将其误判为SQL语法从而报错。
正确执行命令:
psql -U dbuser -d empDatabase -f C:\DataOnlyDump.sql
2. 验证数据导出命令的正确性
确保导出仅数据时使用了正确的pg_dump命令,生成psql可识别的纯文本格式文件:
pg_dump -U dbuser -d empDatabase --data-only -f C:\DataOnlyDump.sql
该命令生成的文件包含COPY ... FROM stdin数据块和\.结束标记,psql可正常解析这类格式。
3. 额外排查要点
- 检查导出文件内容:确认文件以
COPY语句开头,而非INSERT语句(若使用--inserts参数导出,不会出现\.,但导入效率更低)。 - 确保执行用户
dbuser拥有目标数据库的写入权限(如INSERT权限),避免权限问题引发的间接报错。 - 若文件路径包含空格,需用引号包裹路径:
psql -U dbuser -d empDatabase -f "C:\My Folder\DataOnlyDump.sql"
内容的提问来源于stack exchange,提问作者user2148340
相关产品推荐
相关产品推荐

