create table capaxy (gid serial primary key, x double precision, y double precision);
select addgeometrycolumn ('','capaxy','geom',-1,'POINT',2);

BEGIN TRANSACTION;

CREATE OR REPLACE FUNCTION tggFunction_updateEventos() RETURNS trigger AS
$$
  BEGIN
    IF ((NEW.x != OLD.x) OR (NEW.y != OLD.y)) THEN
      NEW.geom = ST_MAKEPOINT (NEW.x, NEW.y);
    ELSE
      IF (NOT (NEW.geom ~= OLD.geom)) THEN
        NEW.x = ST_X (NEW.geom);
        NEW.y = ST_Y (NEW.geom);
      END IF;
    END IF;

    RETURN NEW;
  END;
$$ LANGUAGE plpgsql;

DROP TRIGGER IF EXISTS tggUpdateEventos ON capaxy;
CREATE TRIGGER tggUpdateEventos
  BEFORE UPDATE ON capaxy
  FOR EACH ROW EXECUTE PROCEDURE tggFunction_updateEventos();

END TRANSACTION;