Suite

Déclencher postgis et dump qgis 2.8.2

Déclencher postgis et dump qgis 2.8.2


J'ai créé un déclencheur qui vérifie si la géométrie est valide lors de l'insertion et de la mise à jour.

créer ou remplacer la fonction check_geom() renvoie le déclencheur comme $$ begin --insert a polygon IF st_isvalid(new.geom) = 'f' ALORS RAISE EXCEPTION 'erreur de topologie' ; FIN SI ; RETOUR NULL ; finir; $$ LANGUE plpgsql; DROP TRIGGER IF EXISTS trg_check_geom ON public.uniteobservation ; CRÉER LE DÉCLENCHEUR trg_check_geom APRÈS L'INSERTION OU LA MISE À JOUR sur public.uniteobservation POUR CHAQUE LIGNE EXÉCUTER LA PROCÉDURE check_geom();

J'ai un message d'erreur lorsque je crée une entité avec une géométrie incorrecte (auto-intersection,… ). Je peux le corriger et le valider. Mais je ne peux pas mettre à jour une deuxième fois : QGIS mini dump chaque fois que je sélectionne à nouveau un sommet. Une idée ?


Au lieu d'un déclencheur, vous pouvez ajouter une contrainte basée surst_isvalid(), aimer:

ALTER TABLE public.uniteobservation AJOUTER UNE CONTRAINTE force_valid_geom CHECK (st_isvalid(geom));

Autres contraintes utiles, que vous pourriez considérer pour assurer la cohérence des éditions des utilisateurs, en particulier lorsque plusieurs utilisateurs utilisent QGIS pour éditer des données :

ALTER TABLE public.uniteobservation AJOUTER UNE CONTRAINTE force_type_polygon CHECK (geometrytype(geom) = 'POLYGON'::text OR geometrytype(geom) = 'MULTIPOLYGON'::text OR geom IS NULL); ALTER TABLE public.uniteobservation CONTRAINTE force_dims CHECK (st_ndims(geom) = 2); ALTER TABLE public.uniteobservation CONTRAINTE force_srid CHECK (st_srid(geom) = 3857);

Voir la vidéo: QGIS tutorial PostGIS 1 Intro