IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Aide sur la création d'un type simple (nom composite)


Sujet :

PostgreSQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 5
    Points : 5
    Points
    5
    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.

  2. #2
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    Salut,
    vu le message, il faut définir un nouvel opérateur pour les indexes de classe :

    par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Delphi 2009 - ZeosLib - DevExpress - TMS - PgDAC
    PostgreSQL 8.4 sous Debian
    Sites : http://postgresql.developpez.com http://dgriessinger.developpez.com

Discussions similaires

  1. aide sur la création d'une BD
    Par missdev dans le forum Accès aux données
    Réponses: 4
    Dernier message: 27/07/2009, 19h36
  2. Aide sur la création d'une bdd sous MySQL
    Par Shellai-93 dans le forum Débuter
    Réponses: 20
    Dernier message: 18/08/2006, 11h15
  3. Aide sur la création d un Trigger
    Par hatoug dans le forum Oracle
    Réponses: 20
    Dernier message: 16/05/2006, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo