sql >> Databasteknik >  >> RDS >> PostgreSQL

GeoServer kommer inte att skriva till min PostgreSQL-uppdateringsbara vy

För det första kunde jag inte hålla mer med Frank. Använd 9.1 och en tabellutlösare. Det är dock möjligt att varken det eller en vy kommer att lösa ditt problem.

Testa att göra en manuell UPDATE på din vy från psql. Om det fungerar, och om du ansluter med samma användar-ID med opengeospatial, skulle jag säga att problemet kan vara att opengeospatial är för smart för sitt eget bästa och "vet" att vyer inte kan uppdateras. Antingen det, eller så försöker den en INSERT och du har inte lagt till en matchande INSERT styr på din åsikt.

Meddelandet "filedata_view är skrivskyddad" är inte ett meddelande som PostgreSQL kan producera. Jag undrar om opengeospatial använder JDBC-metadata (förutsatt att det är Java) eller INFORMATION_SCHEMA eller liknande för att fråga schemat, avgör att filedata_view är en vy och drar slutsatsen att den därför inte kan uppdatera den.

Om det vore ett meddelande från PostgreSQL skulle det istället stå:

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

Det kan vara informativt att aktivera log_statement = 'all' i postgresql.conf och ladda om postgresql. Testa igen, titta sedan i loggarna för att se exakt vad opengeospatial gör.

Om det visar sig att den upptäcker en vy kanske du kan lösa problemet med en ON SELECT regel läggs till i en tom tabell. Tabellen fungerar precis som en vy, men GeoServer kommer inte att kunna säga att det är en vy och kan gå med på att skriva till den.



  1. PostgreSQL:Släpp PostgreSQL-databasen via kommandoraden

  2. Vad är nytt i PgBouncer 1.6

  3. left join med villkor för höger tabell i mysql

  4. fel i GWT Hibernate-program 2