J'ai une table appelée _field
. Maintenant, pour une raison quelconque, un champ à l'intérieur de la table, appelé block
, est en désordre et contient maintenant les mauvais numéros de bloc. J'ai les données par défaut pour _field
, mais certains des autres champs ne peuvent plus être en défaut à cause de contraintes étrangères et autres, donc, je ne peux pas simplement restaurer les données par défaut. Donc, pour l'instant, j'ai créé une nouvelle table appelée tmp_field
et rempli avec les données _field
par défaut.J'ai besoin de mettre à jour un champ id pour une table, sans toucher d'autres champs
Maintenant, je besoin d'une requête qui prend les données de _field
et change tous les chiffres dans block
_field
pour correspondre aux numéros de block
tmp_field
.
Une autre façon de l'exprimer serait:
Il vérifie chaque ligne de _field
et si un champ (comme fieldid
ou name
) correspond au même champ tmp_field
, il modifie la valeur du bloc _field
pour correspondre à la valeur de bloc dans tmp_field
.
Note: J'utilise Postgresql 9.1.
Merci pour tout.
Oh, merci, surtout pour la réponse rapide. J'ai essayé quelque chose de similaire, mais cela n'a pas fonctionné parce que je ne connaissais pas la clause 'FROM'. En outre, 'fieldid' doit être' _field.fieldid', la même chose avec 'name', mais oui, cela fonctionne. Merci beaucoup. – zermy
@zermy: Mise à jour de la réponse par commentaire. –