Bonjour à tous,

J'ai une table qui contient des infos géographiques lati/longi, et une autre qui reflète les données par un objet PostGis.

Je souhaite faire un trigger pour maintenir à jour la seconde table en fonction des changements de la première.

D'après les exemples, il faut passer par une fonction. J'ai fait ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE FUNCTION emp_stamp () RETURNS TRIGGER AS '
    BEGIN
	IF tg_op = ''DELETE'' THEN
		DELETE FROM geo_nodes WHERE id = old.id;
		RETURN old;
	ELSE IF tg_op = ''INSERT'' THEN
		INSERT INTO geo_nodes (id, point) VALUES(new.id, ST_MakePoint(new.longitude * 0.0000001, new.latitude * 0.0000001));
	ELSE IF tg_op = ''UPDATE'' THEN
		UPDATE geo_nodes SET point = ST_MakePoint(new.longitude * 0.0000001, new.latitude * 0.0000001) WHERE id = new.id;
	END IF;
	RETURN new;
    END;
'LANGUAGE 'plpgsql';
Mais j'obtiens un message d'erreur :
ERREUR: erreur de syntaxe sur ou près de « ; »
LINE 12: END;
Pourquoi ça ne fonctionne pas ?

Pouvez-vous m'aider ?

Merci, A bientôt