Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Administration
Administration Forum d'entraide sur l'administration de PostgreSQL : utilisateurs, privilèges, etc.
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 08/02/2011, 14h21   #1
Invité de passage
 
Inscription : mai 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 3
Points : 1
Points : 1
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.
pavlo_id est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 14h44   #2
Invité de passage
 
Inscription : mai 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 3
Points : 1
Points : 1
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 :
CREATE UNIQUE INDEX nom_index ON nom_table (lower(colonne1[ASC/DESC]),lower(colonne2[ASC/DESC]),...)
pavlo_id est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 14h45   #3
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 544
Points : 9 544
En quoi ça rend l'index insensible à la casse ???
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 14h53   #4
Invité de passage
 
Inscription : mai 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 3
Points : 1
Points : 1
la contrainte UNIQUE ne passe pas avec une fonction LOWER

Code :
UNIQUE(lower(col1), lower(col2)); -- une erreur
mais en créant un index unique ça passe
j'ai été étonné moi-même
pavlo_id est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h56.


 
 
 
 
Partenaires

Hébergement Web