Za prvé, nemohl jsem více souhlasit s Frankem. Použijte 9.1 a spouštěč tabulky. Je však možné, že ani toto, ani pohled váš problém nevyřeší.
Zkuste provést ruční UPDATE
na váš pohled z psql. Pokud to funguje a pokud se připojíte pomocí stejného ID uživatele s opengeospatial, pak bych řekl, že problém může být v tom, že opengeospatial je příliš chytrý pro své vlastní dobro a „vědí“, že pohledy nelze aktualizovat. Buď to, nebo to zkouší INSERT
a nepřidali jste odpovídající INSERT
rozhodujte podle svého pohledu.
Zpráva "filedata_view is read-only" není zpráva, kterou PostgreSQL může vygenerovat. Zajímalo by mě, zda opengeospatial používá metadata JDBC (za předpokladu, že je to Java) nebo INFORMATION_SCHEMA nebo podobné k dotazování na schéma, určuje, že filedata_view
je pohled a dochází k závěru, že jej proto nemůže aktualizovat.
Pokud by to byla zpráva z PostgreSQL, místo toho by řekla:
# 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.
Může být informativní povolit log_statement = 'all'
v postgresql.conf
a znovu načtěte postgresql. Znovu otestujte, pak se podívejte do protokolů a zjistěte, co přesně opengeospatial dělá.
Pokud se ukáže, že detekuje zobrazení, možná budete moci problém obejít pomocí ON SELECT
pravidlo přidáno do prázdné tabulky. Tabulka bude fungovat stejně jako pohled, ale GeoServer nebude schopen říct, že se jedná o pohled a může souhlasit se zápisem do něj.