[OSM-talk-fr] [psql] What is wrong ?

Vincent de Chateau-Thierry vdct at laposte.net
Jeu 6 Mai 09:20:04 UTC 2010


Bonjour,

> De : "Vincent Pottier"
> Voila ce que j'ai écrit (extrait) :
> -- Types
> CREATE TYPE gpx_trkseg_mode_enum AS ENUM (
> 'bus',
> 'ferry',
> 'tram',
> 'train',
> 'multi'
> );
> -- Table: gpx_trkseg
> CREATE TABLE gpx_trkseg
> (
> id serial NOT NULL,
> "name" character(32),
> trk_id integer,
> mode gpx_trkseg_mode_enum DEFAULT 'public'::gpx_trkseg_mode_enum
> )
> WITH (
> OIDS=FALSE
> );
>
> En retour, sur pgAdmin, j'ai :
> ERREUR: valeur en entrée invalide pour le enum gpx_trkseg_mode_enum : «
> public »
> État SQL :22P02
>
> Ma question est dans le titre... Qu'est-ce qui ne va pas?

Essaie en rajoutant 'public' dans la liste des valeurs qui définissent ton type :

CREATE TYPE gpx_trkseg_mode_enum AS ENUM (
'bus',
'ferry',
'tram',
'train',
'multi',
=>> 'public'
);

Je ne connais pas les mécanismes des TYPEs mais le message à l'air de dire : 
"tu me demande d'assigner une valeur par défaut qui n'est pas parmi celles que je connais".

> De plus, dans pgAdmin, je n'ai pas repéré que le "type"
> "gpx_trkseg_mode_enum" avait été créé. S'il est créé, on trouve ça dans
> le 'dictionnaire FTS' ? S'il n'est pas créé, l'erreur viendrait de là ?

Tant que tu as un plantage, PostGIS invalide l'ensemble des instructions que tu as
soumises en un seul paquet. Une fois que ton étape passe, pour vérifier la création de
ton type, tu peux interroger la table pg_type :
select * from pg_type where typname = 'gpx_trkseg_mode_enum';

vincent


Une messagerie gratuite, garantie à vie et des services en plus, ça vous tente ?
Je crée ma boîte mail www.laposte.net





Plus d'informations sur la liste de diffusion Talk-fr