Partage
  • Partager sur Facebook
  • Partager sur Twitter

Modifier la valeur d'une clé primaire

    25 juillet 2011 à 2:15:17

    Voili voilou, encore moi !

    Je voulais savoir quelles méthodes étaient efficaces afin de modifier une clé primaire ?

    Car imaginons qu'on ai une table personne:

    personne.ID --> clé primaire, auto incrément, int
    personne.nom --> char(100)
    personne.prenom --> char (100)

    SI je veux modifier la clé primaire de la personne, comment faire ?

    Un comique '
    UPDATE personne SET ID=:ID, nom=:nom, prenom=:prenom WHERE ID=:ID
    
    ' ne fonctionnera pas ^^'

    Alors on pourrait être tenté de faire ceci:
    '
    UPDATE personne SET ID=:ID WHERE nom=:nom, prenom=:prenom
    
    '

    Mais ça n'assure pas l'unicité du résultat !

    Alors, je me pose des questions :p

    Merci :p
    • Partager sur Facebook
    • Partager sur Twitter
      25 juillet 2011 à 2:35:46

      Citation : Fayden

      Une clé primaire doit être unique et jamais réutilisée, par définition.

      • Partager sur Facebook
      • Partager sur Twitter
        25 juillet 2011 à 2:54:23

        si le champ ID était Unique et non Primaire, la requete update fonctionnerait ?
        • Partager sur Facebook
        • Partager sur Twitter
          25 juillet 2011 à 4:05:42

          Aucun intérêt de modifier une clé primaire, et ton SGBDR ne t'empêche pas de la changer, c'est simplement inutile et dangereux, pour reprendre exactement les propos de Lord Casque Noir dans le sujet juste en dessous du tien.
          • Partager sur Facebook
          • Partager sur Twitter
            25 juillet 2011 à 9:26:32

            <citation rid="6490039">
            Un comique '
            UPDATE personne SET ID=:ID2 WHERE ID=:ID1
            


            fonctionnera tout à fait... ça ne sert à rien mais ça marchera ...
            • Partager sur Facebook
            • Partager sur Twitter
              25 juillet 2011 à 11:51:34

              Citation : Mini Vado

              si le champ ID était Unique et non Primaire, la requete update fonctionnerait ?


              Une clé primaire est déjà par définition une contrainte d'unicité :magicien:
              • Partager sur Facebook
              • Partager sur Twitter
                25 juillet 2011 à 12:35:39

                Citation : Fayden

                Aucun intérêt de modifier une clé primaire, et ton SGBDR ne t'empêche pas de la changer, c'est simplement inutile et dangereux, pour reprendre exactement les propos de Lord Casque Noir dans le sujet juste en dessous du tien.



                Pas inutile ^^ Sinon je n'en aurais pas besoin :)

                Mais c'est plutôt au niveau Merise que j'ai mal estimé :p

                Citation

                Une clé primaire est déjà par définition une contrainte d'unicité


                Ouais :) Mais une contrainte d'unicité n'est pas une clé primaire, pour cela que je cherchais à savoir :p

                Mais je vous remercie, c'est mon Merise qui doit être modifié, pas le fonctionnement des SGBD :p
                • Partager sur Facebook
                • Partager sur Twitter
                  25 juillet 2011 à 13:22:53

                  Une clé primaire, au niveau contraintes c'est UNIQUE NOT NULL (donc la valeur identifie chaque ligne de manière unique), mais il y a en plus d'autres notions (qui ne sont pas vérifiées par le SGBD mais par ton cerveau) : http://www.agiledata.org/essays/keys.html
                  • Partager sur Facebook
                  • Partager sur Twitter
                    25 juillet 2011 à 13:48:06

                    Merci à vous :)

                    J'ai modifié mon Merise, je saurais mieux réfléchir à l'avenir :p
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Modifier la valeur d'une clé primaire

                    × 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