Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Tue 09 March 2010 10:33

michCarto
Participant actif
Date d'inscription: 8 Sep 2009
Messages: 105

violates check constraint "enforce_geotype_the_geom"

Bonjour,

j'ai creer un the_geom
select addgeometrycolumn('w_exemple','tmp1,'the_geom',27582,'MULTIPOLYGON',2);

ensuite quand je fais un update il faits

   update w_exemple.tmp1 p1
set the_geom = p2.the_geom
from cadastre.parc_paca p2
where p1.id_parc=p2.id_parc
and  p2.id_parc is not null
and  p2.the_geom is not null;
--and geometrytype(p2.the_geom) = 'MULTIPOLYGON';

ilme mets violates check constraint "enforce_geotype_the_geom"

la table cadastre.parc_paca p2 contient du polygon du multypolygon et du null
comment faire
pour tous les avoir si je fais  geometrytype(p2.the_geom) = 'MULTIPOLYGON'
c'est sur que j'ai pas d'erreur

que faut t'il mettre pour tous les avoir dans
select addgeometrycolumn('w_exemple','tmp1,'the_geom',27582,'??????',2);

merci

Hors ligne

 

#2 Tue 09 March 2010 11:19

Bruno
Membre du bureau
Lieu: Toulouse
Date d'inscription: 22 Jun 2005
Messages: 11766
Site web

Re: violates check constraint "enforce_geotype_the_geom"

Bonjour michCarto,

Merci de poster sur le forum GéoBD, s'il vous plait.
http://georezo.net/forum/viewforum.php?id=31

Je déplace votre sujet,

Bonne journée,

Bruno

Hors ligne

 

#3 Tue 09 March 2010 11:35

ThomasG
Membre
Lieu: Nantes
Date d'inscription: 9 Sep 2005
Messages: 943
Site web

Re: violates check constraint "enforce_geotype_the_geom"

Bonjour,

Uniformisez le type des géométries avec vos colonnes d'origine avec la fonction qui transformera vos POLYGON en MULTIPOLYGON avec la fonction

Code:

Multi(geometry)

http://www.postgis.fr/node/229

Pour vos contraintes, vérifiez dans la table que vous mettez à jour, que vous avez quelque chose du type

Code:

ALTER TABLE table_spatiale
  ADD CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL);

Cette contrainte vous permet de gérer les "NULL" et les "MULTIPOLYGON"

La 1ère instruction vous permettra de réduire le problème à des MULTIPOLYGON, la deuxième vous permettra si ce n'est pas fait de gérer les cas NULL

Cordialement

ThomasG

Hors ligne

 

#4 Tue 09 March 2010 11:53

michCarto
Participant actif
Date d'inscription: 8 Sep 2009
Messages: 105

Re: violates check constraint "enforce_geotype_the_geom"

j'ai fait
ca marche

ALTER TABLE w_exemple.tmp DROP CONSTRAINT enforce_geotype_the_geom;
ALTER TABLE w_exemple.tmp ADD CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'POLYGON'::text OR geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL);
merci

Hors ligne

 

Pied de page des forums

Powered by FluxBB