まず、フランクにこれ以上同意できませんでした。 9.1とテーブルトリガーを使用します。ただし、それもビューも問題を解決しない可能性があります。
手動でUPDATE
を実行してみてください psqlからのビューで。それが機能し、opengeospatialと同じユーザーIDを使用して接続する場合、問題はopengeospatialが賢すぎて、ビューを更新できないことを「知っている」ことである可能性があります。それか、INSERT
を試しています 一致するINSERT
を追加していません あなたの見解を支配する。
「filedata_viewは読み取り専用です」というメッセージは、PostgreSQLが生成する可能性のあるメッセージではありません。 opengeospatialがJDBCメタデータ(Javaであると想定)またはINFORMATION_SCHEMAなどを使用してスキーマをクエリしているのか、filedata_view
はビューであり、したがって更新できないと結論付けています。
PostgreSQLからのメッセージの場合は、代わりに次のように表示されます。
# 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.
log_statement = 'all'
を有効にすると有益な場合があります postgresql.conf
内 そしてpostgresqlをリロードします。再テストしてから、ログを調べて、opengeospatialが正確に何をしているのかを確認します。
ビューを検出していることが判明した場合は、ON SELECT
を使用して問題を回避できる可能性があります。 空のテーブルにルールが追加されました。テーブルはビューと同じように機能しますが、GeoServerはそれがビューであると判断できず、書き込みに同意する可能性があります。