다음부터 this earlier question에 이르기까지 저는 PostgreSQL 8.4를 사용 중이며 업데이트 할 수있는보기에 문제가 있습니다.GeoServer가 내 PostgreSQL 업데이트 가능보기에 쓰기를하지 않습니다.
나는 볼 수 있습니다 :
CREATE VIEW filedata_view
AS SELECT num, id, ST_TRANSFORM(the_geom,900913) AS the_geom
FROM filedata
을 그리고 내 응용 프로그램 던져 Geoserver에서 업데이트하려는. 그러나 오류가 발생합니다 :
<ServiceExceptionReport version="1.2.0" xmlns="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/wfs/1.0.0/OGC-exception.xsd">
<ServiceException> {http://www.opengeospatial.net/cite}filedata_view is read-only </ServiceException>
</ServiceExceptionReport>
그래서 PostgreSQL의보기는 업데이트 할 수 없습니다. 보기를 업데이트하려면 규칙이나 트리거를 만들어야합니다.
나는이 시도 :CREATE OR REPLACE RULE ins_view_2 AS
ON UPDATE TO filedata_view DO INSTEAD UPDATE filedata SET the_geom=ST_TRANSFORM(NEW.the_geom,70066)
WHERE num=NEW.num
을하지만 난 여전히 같은 오류를 얻고, 도움이되지 않았다.
내 실수는 어디에서 왔습니까?
1) 테이블 정의 및 일부 데이터를 질문에 추가하십시오. 2) 업데이트에서 ID 필드를 잊어 버린 것 같습니다 (FK입니까?) 3) 삽입 및 삭제에 대한 규칙도 만들어야합니다. 4) 오류는 카탈로그를 검사하고 filedata_view가 뷰이고 (뷰가 RO라고 생각하는) 프레임 워크에서 비롯된 것이므로 명령 줄에서 먼저 호출하려고 시도합니다. 5) 항상 정규화 된 이름을 규칙에 사용하십시오 (예 :'fd.num = NEW.num'). – wildplasser