2010-07-19 4 views
1

Nous avons rencontré un problème avec la clé primaire. Il a été fixé à une valeur significative pour faciliter la saisie des données puisque toutes les données ont été initialement ajoutées directement. Cependant, maintenant, la valeur significative n'est pas toujours présente dans toutes les entrées. Nous passons maintenant à une clé générée automatiquement et non significative. Mais je dois mettre à jour la base de données pour refléter cela.Réécrire les clés étrangères avec la mise à jour après la modification de la clé primaire

Donc, ma table de produits a les colonnes serial (la clé d'origine) et Id (le nouveau PK). Ma table de pièces a les 2 colonnes FK_serial (l'ancien FK) et FK_product (le nouveau FK, actuellement mis à 0 pour toutes les entrées).

Existe-t-il une instruction UPDATE qui parcourt la table parts et définit FK_product sur la valeur Id dans la table products où serial = FK_serial?

Répondre

2
UPDATE parts 
JOIN products 
ON parts.FK_serial = products.serial 
SET parts.FK_product = products.Id; 
Questions connexes