เมื่อฉันเข้าองค์ประกอบใหม่ (คุณสมบัติ) ในเลเยอร์ Postgres อีกฉันสามารถทำได้สองวิธี:
- การวาดองค์ประกอบใหม่ (ด้วย 'เพิ่มคุณสมบัติ') ซึ่งฉันไม่ค่อยทำหรือ
- การคัดลอก (หรือการตัด) องค์ประกอบบางอย่างจากเลเยอร์ Postgre อื่น (เลเยอร์แหล่งที่มา) และวางลงในเลเยอร์เป้าหมายซึ่งฉันทำบ่อยๆ
ในตัวอย่างแรกการบันทึกการแก้ไขทำงานตามปกติเนื่องจากเลเยอร์นี้ได้รับgidจากลำดับฐานข้อมูล postgre * nextval ('layer_name_gid_seq' :: regclass) *
ในตัวอย่างที่สองฉันได้รับข้อผิดพลาดระหว่างการบันทึกการแก้ไขเพราะในขณะที่การคัดลอกองค์ประกอบจากเลเยอร์ต้นทางไปยังเลเยอร์เป้าหมาย qgis คัดลอก gidขององค์ประกอบจากเลเยอร์ต้นทาง เมื่อพยายามบันทึกการแก้ไขข้อผิดพลาดนี้จะถูกส่งคืน:
ไม่สามารถคอมมิชชันการเปลี่ยนแปลงในเลเยอร์„ Cjevovodi“
ข้อผิดพลาด: ข้อผิดพลาด: 1 ไม่ได้เพิ่มคุณสมบัติ
ข้อผิดพลาดของผู้ให้บริการ: ข้อผิดพลาดของ
PostGIS ขณะที่เพิ่มคุณสมบัติ: ข้อผิดพลาด: ค่าคีย์ที่ซ้ำกันละเมิดข้อ จำกัด ที่ไม่ซ้ำกัน "cjevovodi_okill_pkey" ราย
ละเอียด: Key (gid) = (5) มีอยู่แล้ว
ฉันพยายามคัดลอก * nextval ('layer_name_gid_seq' :: regclass) * ในฟิลด์ gid แต่ลำดับนี้ไม่สามารถวางในฟิลด์ gid ได้เนื่องจากฟิลด์ถูกกำหนดเป็นตัวเลข
ไม่มีใครรู้วิธีการง่ายๆในการคัดลอกองค์ประกอบจากเลเยอร์แหล่งที่มา (ด้วย gid ที่มีอยู่) กำหนด gid ใหม่หรือไม่
ขอบคุณ!