sql >> Databáze >  >> RDS >> PostgreSQL

GeoServer nebude zapisovat do mého PostgreSQL aktualizovatelného pohledu

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.



  1. Zámky SQL Server – další závory, o kterých byste měli vědět

  2. Oracle JDBC:Jak zjistit, který řádek vyvolává jedinečné klíčové omezení?

  3. Jak hledat v poli json, které obsahuje pole objektů pomocí Eloquent

  4. Jak vytvořit tabulku pomocí výběrového dotazu v SQL Server?