Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/11/2004, 15h44   #1
Invité de passage
 
Inscription : octobre 2004
Messages : 5
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 5
Points : 0
Points : 0
Par défaut Aide sur la création d'un type simple (nom composite)

Bonjour,

Voici le code que je tape avec l'erreur retournée.
Je voudrais savoir si il est possible de definir des types simples.
je souhaiterais par exemple créer un type de varchar(13)

CREATE TYPE codeva13 AS (varchar varchar(13));
CREATE TYPE ident AS (integer int4);
create table test (test1 ident not null,test2 codeva13 not null);
create unique index pk_test on test (test1,test2);

ERROR: data type ident has no default operator class for access method "btree"
HINT: You must specify an operator class for the index or define a default operator class for the data type.

Merci d'avance.
testeur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2004, 20h30   #2
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
Salut,
vu le message, il faut définir un nouvel opérateur pour les indexes de classe :

par exemple
Code :
1
2
3
4
CREATE OPERATOR CLASS codeva13_ops DEFAULT
   FOR TYPE codeva13 USING hash AS
   OPERATOR 1  =(text, text),
   FUNCTION 1  hashtext(text);
c'est peut etre un mauvais exemple, mais sur le principe c'est ca.
(n'utilise pas le type hash, ca marche pas dans les multicolonnes)

tu utilise qu'une seule colonne, pourquoi ne pas utiliser les domain ?

Code :
1
2
3
4
CREATE DOMAIN codeva13  AS varchar(13);
CREATE DOMAIN ident  AS int4;
CREATE TABLE test (test1 ident NOT NULL,test2 codeva13 NOT NULL); 
CREATE UNIQUE INDEX pk_test ON test (test1,test2);

il ne devrait pas y avoir de probleme comme ca
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h06.


 
 
 
 
Partenaires

Hébergement Web