Partage
  • Partager sur Facebook
  • Partager sur Twitter

comment créer une table avec deux cléfs?

    7 avril 2011 à 16:03:01

    salut les amis,
    j'ai crée une table dans mysql concernant des renseignements de prof: le nom, le prenom, n°de somme, n° de CIN.
    j'ai donné un clé primaire pour le n°de somme, et je veux donner un autre clé pour le n° de CIN, car chaque prof a un n° de somme et un n° de CIN différent. donc comment donner un autre clé pour n° CIN? et merci bp.
    • Partager sur Facebook
    • Partager sur Twitter
      8 avril 2011 à 11:17:46

      Salut,

      si tu parle d'une seconde clé primaire ca sera pas possible et en plus, ca ne serait pas conseillé de toute facon.
      tu peux par contre mettre la valeur et l'indexer.

      CREATE  TABLE enseignant(
        nom varchar(50) NOT NULL,
        prenom varchar(50) NOT NULL,
        cin char(?) NOT NULL,
        somme char(?) NOT NULL,
        PRIMARY KEY(cin),
        KEY (somme)
      ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
      


      tu peux aussi regrouper les deux valeurs et faire un seul champ qui serait clé primaire
      • Partager sur Facebook
      • Partager sur Twitter
        8 avril 2011 à 13:14:15

        Juste pour l'anecdote, une PRIMARY KEY peut être composée plusieurs colonne.
        [...] PRIMARY KEY (colonne1, colonne2) [...]

        Mais dans ce cas, c'est l'association des valeurs de ta colonne1 et de ta colonne2 qui doit être différente pour chaque ligne. Deux lignes peuvent donc avoir une valeur identique dans la colonne2, et une valeur différente dans la colonne1.

        Sinon le plus simple est d'ajouter une contrainte d'unicité (UNIQUE) avec éventuellement une contrainte NOT NULL si la colonne doit obligatoirement être remplie.
        • Partager sur Facebook
        • Partager sur Twitter
          9 avril 2011 à 16:41:32

          Tu peux utiliser une contrainte d'unicité sur la colonne somme.

          CREATE TABLE enseignant(
            nom varchar(50) NOT NULL,
            prenom varchar(50) NOT NULL,
            cin char(?) NOT NULL,
            somme char(?) NOT NULL,
            PRIMARY KEY(cin),
            UNIQUE KEY (somme)
          ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
          
          • Partager sur Facebook
          • Partager sur Twitter

          comment créer une table avec deux cléfs?

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown