Je veux changer la valeur de la clé principale d'une ligne d'une table qui a des relations avec d'autres tables:
par exemple p> Je veux changer de personne. Id et personne2address.personid p> J'essaie quelque chose comme: p> mais bien sûr il fournit des conflits :) p> Comment puis-je Supprimer temporairement des contraintes de clé étrangère ou y a-t-il un meilleur moyen de changer d'identifiant pour personne? p> p>
3 Réponses :
Votre pari le plus facile pour des choses comme ceci est d'utiliser quelque chose comme: puis déposez les champs d'identification et de personnage et renommez les tempêtes. P> P>
Merci pour la réponse mais cela ressemble à @Marc_s approche semble être plus facile
Tout d'abord, la modification de la valeur de la clé principale n'est jamais une bonne idée. Votre objectif principal devrait être d'essayer d'éviter cela par tous les moyens.
Si vous ne pouvez pas éliminer la nécessité de mettre à jour la valeur de la clé principale, votre meilleur choix serait de définir la relation de clé étrangère entre ces deux tables d'utiliser < code> sur la mise à jour cascade code>, de sorte que toutes les modifications apportées à la clé primaire de la table principale soient automatiquement en cascades à la table enfant. p>
Pour ce faire, déposez votre relation de clé étrangère existante, puis ajoutez : p> qui devrait ensuite mettre à jour automatiquement le Vous devriez être capable d'appeler simplement p> et qui devrait être tout ce qu'il y a! P> p > Person2Address code> PERSONID code> de la valeur code> si le ID code> sur la personne change. p>
Code mal testé inséré {0000-0000-0000} la valeur du guid comme pk pour que je veux donc le changer. Merci, je vais essayer
Vous pouvez déposer des contraintes FK et les recréer lorsque vous avez terminé.
ALTER TABLE some_table DROP CONSTRAINT my_constraint