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

Administration PostgreSQL Discussion :

Comment créer une contrainte UNIQUE insensible à la casse ?


Sujet :

Administration PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 3
    Par défaut Comment créer une contrainte UNIQUE insensible à la casse ?
    Y a t-il moyen d’implémenter une contrainte UNIQUE qui ne soit pas sensible à la casse, à l'aide des CHECK, sans rentrer dans les paramètres du SGBD ? Ou autrement, mais à l’étape de création de la table ?

    C'est quelquechose que je cherche depuis déjà un certain temps.

    Merci.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 3
    Par défaut
    Ok, j'ai trouvé!!!

    Il suffit de créer un index supplémentaire sur ensemble de colonnes en question en mettant lower() pour chaque colonne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE UNIQUE INDEX nom_index ON nom_table (lower(colonne1[asc/desc]),lower(colonne2[asc/desc]),...)

  3. #3
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 287
    Par défaut
    En quoi ça rend l'index insensible à la casse ???

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 3
    Par défaut
    la contrainte UNIQUE ne passe pas avec une fonction LOWER

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UNIQUE(lower(col1), lower(col2)); -- une erreur
    mais en créant un index unique ça passe
    j'ai été étonné moi-même

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment créer une colonne en champs Unique
    Par boby15000 dans le forum ADO.NET
    Réponses: 2
    Dernier message: 23/03/2010, 05h45
  2. Comment créer une contrainte entre deux tables ?
    Par Invité dans le forum Requêtes
    Réponses: 4
    Dernier message: 20/04/2009, 16h53
  3. Réponses: 2
    Dernier message: 02/04/2008, 19h05
  4. Réponses: 3
    Dernier message: 27/02/2007, 15h11
  5. Comment effectuer une comparaison LIKE insensible à la casse ?
    Par Hervé Saladin dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 20/10/2006, 12h36

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