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

PowerAMC Discussion :

PowerAMC - MPD - Création d'une contrainte d'unicité sur une colonne.


Sujet :

PowerAMC

  1. #1
    Membre habitué Avatar de ziad.shady
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 212
    Points : 139
    Points
    139
    Par défaut PowerAMC - MPD - Création d'une contrainte d'unicité sur une colonne.
    Bonjour,

    Je souhaiterai créer une contrainte d'unicité sur une colonne.
    A mon avis, cela ne devrait pas être compliqué à faire, sauf que je trouve que ça n'est pas si évident de trouver cette option.
    J'utilise la version 11 de PowerAMC.

    Merci d'avance de vos réponses,

  2. #2
    Membre habitué Avatar de ziad.shady
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 212
    Points : 139
    Points
    139
    Par défaut
    Je signale que j'ai trouvé un contournement en passant par la création d'index (la case à cocher 'unique'), mais je pense qu'il y a une meilleure solution que cela.

  3. #3
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonjour ziad.shady,


    On va supposer que votre table comporte déjà sa clé primaire. Si tel est le cas, votre problème revient à définir une clé supplémentaire, ce qu'on appelle une clé alternative.

    En l'occurrence, je vous renvoie à la réponse faite à Petit Rasta (avec la version 11 de PowerAMC).
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  4. #4
    Membre habitué Avatar de ziad.shady
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 212
    Points : 139
    Points
    139
    Par défaut
    Bonjour fsmrel,

    J'ai vu la solution que vous m'avez suggéré, qui porte sur la définition d'une clé alternative. Je vous remercie de votre réponse.
    Peut être que je n'ai pas bien exposé ma problématique, ça pourrait éventuellement m'éviter de définir cette clé alternative.

    J'ai une table REGION : ayant deux colonne : REG_ID et REG_NOM.
    Je voudrai que le nom de la région "REG_NOM" soit unique.
    En SQL je souhaiterai que le script généré en fin de compte, corresponde à celui affiché ci-dessous notamment avoir la contrainte d'unicité : UNIQUE (REG_NOM).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    create table REGION (
    REG_ID               INT2                 not null,
    REG_NOM              VARCHAR(50)          not null,
    constraint PK_REGION primary key (REG_ID),
    UNIQUE (REG_NOM)
    );
    Ziad,

  5. #5
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Ce qu'on appelle une clé alternative en relationnel se traduit en SQL par une contrainte UNIQUE.

    C'est ce que rappelle la norme SQL et quand on génére le script, c'est bien ce que fait PowerAMC (à condition évidemment que l'on demande la génération de la contrainte en cochant la bonne case dans le paramétrage du script).
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  6. #6
    Membre habitué Avatar de ziad.shady
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 212
    Points : 139
    Points
    139
    Par défaut
    Bonjour fsmrel,

    Merci de votre réponse et de vos explications. Effectivement cela répond parfaitement à ma problématique.
    C'est vrai que je ne connaissais pas la notion des "clé alternative". J'avais cru que cela va me rajouter ne colonne supplémentaire dans ma table c'est pour cela que j'en étais pas trop convaincu.

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

Discussions similaires

  1. Réponses: 19
    Dernier message: 12/06/2014, 10h41
  2. Modifier une contrainte d'unicité sur une table mySQL
    Par bernidupont dans le forum Débuter
    Réponses: 2
    Dernier message: 19/02/2013, 14h52
  3. Réponses: 4
    Dernier message: 12/07/2012, 14h39
  4. Contrainte d'unicité sur 6 colonnes
    Par sarabaïte dans le forum Langage SQL
    Réponses: 6
    Dernier message: 05/03/2011, 22h43
  5. Réponses: 7
    Dernier message: 10/09/2008, 15h53

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