มีวิธีการรีเฟรชตารางคุณลักษณะของเลเยอร์หลังจากแก้ไขตาราง (เช่นเพิ่มคอลัมน์) ใน DB-Manager หรือไม่?
มีวิธีการรีเฟรชตารางคุณลักษณะของเลเยอร์หลังจากแก้ไขตาราง (เช่นเพิ่มคอลัมน์) ใน DB-Manager หรือไม่?
คำตอบ:
สั้นและหวาน:
Change vector datasource
คลิกขวาบนชั้นในชั้นแผงและเลือกOK
โดยไม่เปลี่ยนการตั้งค่าใด ๆโดยทั่วไปคุณกำลัง "เปลี่ยน" แหล่งข้อมูลเวกเตอร์เป็นสิ่งที่เป็นอยู่แล้ว แต่สิ่งนี้บังคับให้ QGIS โหลดคำจำกัดความเลเยอร์อีกครั้ง
ทดสอบใน QGIS 2.14 บน Linux Mint 17.2
สมมติว่าคุณทำงานกับฐานข้อมูล PostGIS คุณสามารถอัปเดตสถิติของตารางที่สนใจโดยใช้ANALYSE
ฟังก์ชัน:
http://www.postgresql.org/docs/current/static/sql-analyze.html
ในกรณีของคุณคุณสามารถดำเนินการคำสั่งภายใน DB-manager โดยกดปุ่มที่มีเครื่องหมายในภาพที่แนบมาและดำเนินการANALYSE
คำสั่งในหน้าต่างซึ่งถูกทำเครื่องหมายด้วย แบบสอบถามจะเป็นANALYSE yourschema.yourtable
. คำสั่งวิเคราะห์ควรอัปเดตตารางของคุณดังนั้นเมื่อคุณเข้าถึงข้อมูลอีกครั้งควรสะท้อนถึงการเปลี่ยนแปลงที่คุณทำ
ฉันเข้าใจดีหรือไม่ถ้าคุณตั้งใจจะรีเฟรชตารางใน QGIS หลังจากทำการเปลี่ยนแปลงคอลัมน์แล้ว?
เท่าที่ฉันรู้เพียงปิดและเปิดโครงการหรือเพิ่มตารางใหม่จะทำให้สิ่งนี้เกิดขึ้น ตราบใดที่คุณบันทึกสไตล์เริ่มต้นในฐานข้อมูลที่อาจเป็นวิธีที่เร็วที่สุด
เมื่อมีการเพิ่มคอลัมน์ด้วยเครื่องคำนวณภาคสนามการเปลี่ยนแปลงจะมองเห็นได้ทันที แต่ตัวจัดการฐานข้อมูลมีการควบคุมที่มากขึ้นในการกำหนดประเภทเขตข้อมูลดังนั้นฉันจึงเข้าใจว่าเหตุใดจึงอาจไม่ใช่วิธีแก้ปัญหา
layer.dataProvider().forceReload()
ควรทำเคล็ดลับ