Jak zaktualizować tabelę, gdy widok jest aktualizowany?
Chcę zaktualizować tabelę po zaktualizowaniu jej widoku. Używam postgresql / postgis.
Tworzę widok.
CREATE VIEW filedata_view
AS SELECT num, id, ST_TRANSFORM(the_geom,900913)
FROM filedata
A teraz, gdy zaktualizuję, chcę zaktualizować TABLE za pomocą tych danych. Ale słyszałem, że wyzwalaczy nie można umieścić w VIEW. Jak to zrobić?
Teraz używam tej funkcji
CREATE OR REPLACE FUNCTION update_table() RETURNS TRIGGER AS '
BEGIN
UPDATE filedata SET id=NEW.id, the_geom=ST_TRANSFORM(NEW.st_transform,70066) where num=NEW.num ;
END;
' LANGUAGE plpgsql;
w porządku. Ale inny problem. Jak dodać wyzwalacz, aby wyświetlić to zrobić
CREATE TRIGGER up_table AFTER UPDATE ON filedata_view
FOR EACH ROW EXECUTE PROCEDURE update_table ();
ale dostań błąd
ERROR: "filedata_view" is not a table.
AKTUALIZACJA
Jak ustawić nazwę kolumnyAS SELECT num, id, ST_TRANSFORM(the_geom,900913)
jeśli użyję tego, otrzymam kolumny:num
,id
ist_transform
. Jak ustawić nazwę trzeciej kolumny nathe_geom
?