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 :

contrainte d'unicite sur deux champs


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2006
    Messages : 134
    Par défaut contrainte d'unicite sur deux champs
    Bonjour.
    Je souhaite poser une contrainte d'unicté sur deux champs avec une condition sur un des champs. Un petit exemple pour mieux comprendre.

    ma_table ( id_table, champ1 , champs2 );

    il faut que champ1 soit unique pour une valueur de champ2 = 1.

    Cela est il possible avec les contrainte ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 114
    Par défaut
    Voici un exemple de création de table avec une contrainte unique sur deux colonne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE exemple (
        a integer,
        b integer,
        c integer,
        UNIQUE (a, c)
    );
    Cela veut dire que tout couple (a,c) sera unique dans la table exemple.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2006
    Messages : 134
    Par défaut
    Merci pour la reponse.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE TABLE exemple (
        a integer,
        b integer,
        c integer,
        UNIQUE (a, c)
    );
    Mais il me faut l'unicte de a avec une certaine valeur de c
    par exemple pas de doublons de a avec c= 1
    a | c
    1 | 2 -> ok
    1 | 2 -> ok
    1 | 2 -> ok
    1 | 1 -> ok
    1 | 1 -> NON

  4. #4
    Membre expérimenté Avatar de budtucker
    Profil pro
    Développeur multimédia
    Inscrit en
    Avril 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Avril 2007
    Messages : 176
    Par défaut
    As tu essayé avec les triggers ? Les Triggers ne sont que des fonctions qui tolèrent ou non l'insertion (par exemple) d'un champs. Dans ta fonction, selon les valeurs en entré, tu accèptes ou non l'insertion.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 114
    Par défaut
    tiens voilà une série de tutoriaux.

    Je te conseille de lire les parties sur le DAL et le BLL

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 114
    Par défaut
    J'y pense (merci Elmoricq )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE exemple (
        a integer,
        b integer,
        c integer,
        CHECK ( c != a )
    );
    Ca devrai marcher ça

    Sinon les docs sont .

Discussions similaires

  1. [AC-2003] Créer une contrainte d'unicité basé sur deux champs(hors clé primaire)
    Par adelcrb dans le forum Modélisation
    Réponses: 1
    Dernier message: 31/08/2013, 21h06
  2. Réponses: 1
    Dernier message: 29/06/2011, 20h03
  3. Contrainte d'unicité sur 2 champs d'un domaine
    Par DevServlet dans le forum Grails
    Réponses: 6
    Dernier message: 22/09/2010, 23h23
  4. Réponses: 5
    Dernier message: 17/07/2008, 11h40
  5. contrainte sur deux champs d'une table
    Par bdkiller dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 17/09/2004, 18h26

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