#1 Tue 09 March 2010 10:33
- michCarto
- Participant actif
- Date d'inscription: 8 Sep 2009
- Messages: 106
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
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
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: 106
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