Pouvons-nous mettre à jour les valeurs de clé primaire d'une table?
Il est communément admis que les clés primaires doivent être immuables (ou aussi stable que possible puisque l'immuabilité ne peut pas être appliquée dans la base de données). Bien que rien ne vous empêche de mettre à jour une clé primaire (à l'exception de la contrainte d'intégrité), ce n'est peut-être pas une bonne idée:
Du point de vue des performances:
Autres considérations:
En conclusion, lors de la conception, il est généralement plus sûr d'utiliser une clé de substitution à la place d'une clé primaire naturelle qui est censée ne pas changer - mais peut éventuellement devoir être mise à jour en raison de modifications des exigences ou même d'une erreur de saisie de données.
Si vous devez absolument mettre à jour une clé primaire avec une table enfant, voir ce message de Tom Kyte pour une solution .
Les attributs de clé primaire sont tout aussi actualisables que tout autre attribut d'une table. La stabilité est souvent une propriété souhaitable d'une clé mais certainement pas une exigence absolue. S'il est logique d'un point de vue commercial de mettre à jour une clé, il n'y a aucune raison fondamentale pour laquelle vous ne devriez pas.
Vous pouvez aussi longtemps que
Du point de vue de la théorie de la base de données relationnelle, la mise à jour de la clé primaire d'une table ne devrait poser aucun problème, à condition qu'il n'y ait pas de doublons entre les clés primaires et que vous n'essayez pas de mettre une valeur NULL dans l'une des clés primaires. colonnes clés.
Réponse courte: oui, vous le pouvez. Bien sûr, vous devrez vous assurer que la nouvelle valeur ne correspond à aucune valeur existante et que les autres contraintes sont satisfaites (duh).
Qu'est-ce que vous essayez de faire exactement?
Vous pouvez, dans certaines circonstances.
Mais le fait que vous considériez ceci est un signe fort qu'il y a quelque chose qui ne va pas dans votre architecture: les clés primaires doivent être purement techniques et n'avoir aucune signification commerciale. Il ne devrait donc jamais être nécessaire de les changer.
Thomas