PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

GeoServer nie zapisuje do mojego aktualizowanego widoku PostgreSQL

Po pierwsze, nie mogłem się bardziej zgodzić z Frankiem. Użyj wersji 9.1 i wyzwalacza tabeli. Jednak jest możliwe, że ani to, ani widok nie rozwiążą twojego problemu.

Spróbuj wykonać ręcznie UPDATE na twój widok z psql. Jeśli to zadziała i jeśli połączysz się za pomocą tego samego identyfikatora użytkownika z opengeospatial, powiedziałbym, że problem może dotyczyć opengeospatial, który jest zbyt sprytny dla własnego dobra i „wiedząc”, że widoki nie mogą być aktualizowane. Albo to, albo próbuje INSERT a nie dodałeś pasującego INSERT rządzić swoim poglądem.

Komunikat "filedata_view jest tylko do odczytu" nie jest komunikatem, który może wygenerować PostgreSQL. Zastanawiam się, czy opengeospatial używa metadanych JDBC (zakładając, że jest to Java) lub INFORMATION_SCHEMA lub podobnych do zapytania o schemat, określa, że ​​filedata_view jest poglądem i dochodzi do wniosku, że w związku z tym nie może go zaktualizować.

Gdyby była to wiadomość z PostgreSQL, zamiast tego powiedziałby:

# 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.

Pouczające może być włączenie log_statement = 'all' w postgresql.conf i przeładuj postgresql. Przetestuj ponownie, a następnie spójrz w dzienniki, aby zobaczyć, co dokładnie robi opengeospatial.

Jeśli okaże się, że wykrywa widok, możesz obejść ten problem za pomocą ON SELECT reguła dodana do pustej tabeli. Tabela będzie działać jak widok, ale GeoServer nie będzie w stanie stwierdzić, że jest to widok i może zgodzić się na zapisanie do niego.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy istnieje bezpieczny sposób na zmodyfikowanie tabeli pg_constraint tak, aby nie wykonywać więcej sprawdzania (tymczasowo)?

  2. Jak uzyskać podciąg z tabeli sql?

  3. BŁĄD:więcej niż jeden wiersz zwrócony przez podzapytanie użyte jako wyrażenie

  4. Railsy - Korzystanie z join z niestandardowymi skojarzeniami

  5. Zagreguj wartości logiczne do wartości true, jeśli którakolwiek z kolumn źródłowych ma wartość true