PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Refactoriser la clé étrangère dans les champs

Vous semblez aller dans le mauvais sens. Votre schéma original et normalisé est généralement supérieur. Si vous avez besoin d'afficher la boutique / l'utilisateur, créez une VIEW .

Mais vous pouvez avoir vos raisons, alors voici :

UPDATE purchases p
SET   (shop, shop_user) = (s.name, s."user")
FROM   shop s
WHERE  s.id = p.shop_id;

N'utilisez pas le mot réservé "user" comme identifiant.
Et "nom" n'est presque jamais un bon nom , soit.
Et varchar(255) dans Postgres indique généralement un malentendu.

À propos de varchar(255) :

  • Dois-je ajouter une limite de longueur arbitraire aux colonnes VARCHAR ?
  • Y a-t-il des inconvénients à utiliser le type de données "texte" pour stocker des chaînes ?
  • Plus de détails dans le manuel.