PostGIS图层粘贴几何图形无效无法保存,工具因fid为nextval()失败求助
解决PostGIS内存图层因fid为
nextval()无法处理的问题 先把内存里的要素导出到本地临时格式(比如GeoPackage或Shapefile)
操作:右键图层 → 导出 → 保存要素为,选本地格式导出所有内存要素,临时格式会自动分配合法ID,不用管原fid的问题。重置PostGIS表的fid序列
打开QGIS数据库管理器,找到对应表执行SQL:-- 替换your_table为表名,your_fid为fid字段名(比如id) SELECT pg_get_serial_sequence('your_table', 'your_fid'); -- 先查询序列名称 ALTER SEQUENCE 查到的序列名 RESTART WITH 1;这步直接解决
nextval()导致的ID生成异常问题。修复临时图层的无效几何
加载导出的临时图层,用QGIS「处理工具盒」里的「修复几何图形」工具处理所有要素,确保输出图层不存在环点数不足这类无效问题。把修复后的要素导回原PostGIS图层
右键修复好的临时图层 → 导出 → 保存要素为,选择原PostGIS图层,勾选「追加到现有图层」(原磁盘图层已为空,直接导入即可),导入时让数据库自动生成fid。验证修复结果
加载原PostGIS图层,用「检查几何有效性」工具确认所有要素正常,再尝试保存编辑,确认能正常写入数据库。
内容的提问来源于stack exchange,提问作者gotjosh
相关产品推荐
相关产品推荐

