PGadmin导入PostgreSQL的location表CSV报非空约束错误求助
PGAdmin导入CSV报错解决方案
一、先排查「取消非空后仍报非空约束」问题
- 确认表结构修改已生效:在PGAdmin修改非空勾选后,必须点击工具栏的保存按钮才会同步到数据库。可执行以下SQL验证约束状态,替换为你实际的schema名:
SELECT column_name, is_nullable FROM information_schema.columns WHERE table_name = 'location table' AND table_schema = '你的schema名称';
如果location_id对应的is_nullable值为NO,说明修改未生效,重新调整非空选项后保存即可。
- 检查是否存在主键约束:主键默认强制非空,就算手动取消列的非空勾选也不会生效。如果
location_id是主键,两种处理方式:- 不需要主键的话直接删除主键约束
- 需要主键的话,可在导入向导中取消勾选
location_id列不导入,给该列绑定自增序列后由数据库自动生成值
小提示:PostgreSQL中名称带空格的表/列需要用双引号包裹才能正常操作,比如
SELECT * FROM "location table";
二、解决CSV末尾空白行报错问题
报错指向的1380行是空白行,有三种处理方式可选:
- 直接修改CSV文件:打开CSV删除第1380行及之后的所有空白行,保存后重新导入
- 导入时指定行范围:在PGAdmin导入向导的「选项」页,设置导入的结束行号为1379,自动跳过末尾空白行
- 开启空行忽略配置:在导入选项中勾选「忽略空行」,导入时会自动跳过所有全空的行,不需要手动修改文件
内容的提问来源于stack exchange,提问作者P.D.R
相关产品推荐
相关产品推荐

