PostGIS: ลงทะเบียนคอลัมน์เรขาคณิตโดยไม่มี AddGeometryColumn

วิธีปกติในการสร้างคอลัมน์เรขาคณิตคือ AddGeometryColumn อย่างไรก็ตาม ฉันต้องทำงานกับคอลัมน์ที่มีอยู่แล้ว ดังนั้นฉันจึงใช้ฟังก์ชันนั้นไม่ได้ (เท่าที่ฉันรู้)

ขอบคุณ เอกสาร PostGIS ฉันสามารถลงทะเบียนคอลัมน์ใน ตาราง "geometry_columns" แต่ดูเหมือนว่า AddGeometryColumn จะทำมากกว่าการ สร้างคอลัมน์ และ เพิ่มแถวใน geometry_columns ตัวอย่างเช่น เพิ่ม เช็ค ในคอลัมน์


ดังนั้นคำถามของฉันคืออะไร: ฉันต้องทำอะไรเพื่อลงทะเบียนคอลัมน์ด้วยตนเอง นอกเหนือจากการเพิ่มแถวใน *geometry_columns* ?

(เช่น มีเวอร์ชันแก้ไข AddGeometryColumn ที่ใช้ได้กับคอลัมน์ที่มีอยู่หรือไม่)


person wildpeaks    schedule 22.10.2010    source แหล่งที่มา


คำตอบ (2)


วิธีที่ง่ายที่สุดในการดำเนินการกับคอลัมน์ที่มีอยู่คือการใช้ฟังก์ชัน Populate_Geometry_Columns:
http://postgis.org/documentation/manual-1.5/Populate_Geometry_Columns.html

กล่าวอีกนัยหนึ่ง: ฟังก์ชั่นที่คุณขอมีอยู่แล้ว :-)

เอชทีเอช นิคลาส

person Nicklas Avén    schedule 22.10.2010
comment
คำแนะนำที่ดี แต่ฉันหวังว่ามันจะใช้กับคอลัมน์ที่ระบุเท่านั้นแทนที่จะเป็นทั้งตาราง แต่จะปลอดภัยกว่าการอัพเกรดมากกว่าการสร้าง AddGeometryColumn เวอร์ชันดัดแปลงอย่างแน่นอน ขอบคุณ - person wildpeaks; 25.10.2010
comment
มันเป็นฟังก์ชัน plpgsql ดังนั้นบางทีคุณอาจสามารถแก้ไขได้ด้วยวิธีง่ายๆ - person Nicklas Avén; 25.10.2010

ดังที่คุณกล่าวไว้ AddGeometryColumn เป็นเพียงทางลัดที่มีประโยชน์สำหรับการสร้างไม่เพียงแต่คอลัมน์เท่านั้น แต่ยังเป็นการเพิ่มการตรวจสอบประเภทและดัชนีอีกด้วย แน่นอน คุณสามารถเพิ่มสิ่งเหล่านี้ลงในคอลัมน์ที่มีอยู่ได้ด้วยตนเอง: คุณเพียงแค่ต้องทำสิ่งเดียวกันกับที่ AddGeometryColumn ทำเพื่อคุณในคำสั่งเดียว

หากคุณต้องการถ่ายโอนคอลัมน์ "ปกติ" หนึ่งคอลัมน์ไปยังคอลัมน์ "gis" ทำไมไม่ใช้ SELECT INTO ในการถ่ายโอนข้อมูล

person DrColossos    schedule 23.10.2010