sql >> データベース >  >> RDS >> PostgreSQL

GeoServerはPostgreSQLの更新可能なビューに書き込みません

    まず、フランクにこれ以上同意できませんでした。 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はそれがビューであると判断できず、書き込みに同意する可能性があります。



    1. PHPまたはMySQLで2つの日付の違いを見つける

    2. ロールのすべてのデータベースとオブジェクトの付与を確認するにはどうすればよいですか?

    3. 最新のメッセージのSQLクエリ

    4. plpgsqlの配列次元をループします