PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

O GeoServer não grava na minha visão atualizável do PostgreSQL


Primeiro, eu não poderia concordar mais com Frank. Use 9.1 e um gatilho de tabela. No entanto, é possível que nem isso nem uma visualização resolvam seu problema.

Tente fazer um UPDATE manual na sua visão do psql. Se isso funcionar, e se você se conectar usando o mesmo ID de usuário com o opengeospatial, eu diria que o problema pode ser o opengeospatial ser muito inteligente para seu próprio bem e "saber" que as visualizações não podem ser atualizadas. Ou isso, ou está tentando um INSERT e você não adicionou um INSERT correspondente regra em sua visão.

A mensagem "filedata_view is read-only" não é uma mensagem que o PostgreSQL possa produzir. Eu estou querendo saber se opengeospatial está usando metadados JDBC (supondo que seja Java) ou INFORMATION_SCHEMA ou similar para consultar o esquema, está determinando que filedata_view é uma visão e está concluindo que, portanto, não pode atualizá-la.

Se fosse uma mensagem do PostgreSQL, diria:
# 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.

Pode ser informativo ativar log_statement = 'all' em postgresql.conf e recarregue o postgresql. Teste novamente e, em seguida, olhe nos logs para ver o que exatamente o opengeospatial está fazendo.

Se estiver detectando uma visualização, você poderá solucionar o problema com um ON SELECT regra adicionada a uma tabela vazia. A tabela funcionará exatamente como uma visualização, mas o GeoServer não poderá dizer que é uma visualização e pode concordar em gravar nela.