Pertama, saya sangat setuju dengan Frank. Gunakan 9.1, dan pemicu tabel. Namun, ada kemungkinan bahwa baik itu maupun tampilan tidak akan menyelesaikan masalah Anda.
Coba lakukan UPDATE
manual manual pada tampilan Anda dari psql. Jika itu berhasil, dan jika Anda terhubung menggunakan ID pengguna yang sama dengan opengeospatial, maka menurut saya masalahnya mungkin karena opengeospatial terlalu pintar untuk kebaikannya sendiri dan "mengetahui" bahwa tampilan tidak dapat diperbarui. Entah itu, atau mencoba INSERT
dan Anda belum menambahkan INSERT
yang cocok aturan pada pandangan Anda.
Pesan "filedata_view is read-only" bukanlah pesan yang mungkin dihasilkan PostgreSQL. Saya bertanya-tanya apakah opengeospatial menggunakan metadata JDBC (dengan asumsi itu Java) atau INFORMATION_SCHEMA atau mirip dengan kueri skema, menentukan bahwa filedata_view
adalah tampilan, dan menyimpulkan bahwa karena itu tidak dapat memperbaruinya.
Jika itu adalah pesan dari PostgreSQL, itu akan mengatakan:
# UPDATE customer_v SET customer_number = 1234;
ERROR: cannot update view "the_view"
HINT: You need an unconditional ON UPDATE DO INSTEAD rule or an INSTEAD OF UPDATE trigger.
Mungkin informatif untuk mengaktifkan log_statement = 'all'
di postgresql.conf
dan muat ulang postgresql. Uji ulang, lalu lihat di log untuk melihat apa sebenarnya yang dilakukan opengeospatial.
Jika ternyata mendeteksi tampilan, Anda mungkin dapat mengatasi masalah dengan ON SELECT
aturan ditambahkan ke tabel kosong. Tabel akan bekerja seperti tampilan, tetapi GeoServer tidak akan dapat mengatakan bahwa itu adalah tampilan dan mungkin setuju untuk menulisnya.