PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

GeoServer няма да пише в моя изглед с възможност за актуализиране на PostgreSQL

Първо, не мога да се съглася повече с Франк. Използвайте 9.1 и тригер за таблица. Въпреки това е възможно нито това, нито изгледът да решат проблема ви.

Опитайте да направите ръчно UPDATE според вашия изглед от psql. Ако това работи и ако се свържете, използвайки същия потребителски идентификатор с opengeospatial, тогава бих казал, че проблемът може да е, че 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Опитвам се да настроя postgres за ror приложение, получавам грешка - fe_sendauth:не е предоставена парола

  2. PostGIS - преобразувайте мултиполигони в единични полигони

  3. Използвайте изведен текст от функция като нова заявка

  4. Топ GUI инструменти за PostgreSQL

  5. Как да създадете TimescaleDB Hypertable с времево разделяне на неуникален времеви печат?