PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Refactoring della chiave esterna ai campi

Sembra che tu stia andando nella direzione sbagliata. Il tuo schema originale e normalizzato è in genere superiore. Se devi visualizzare negozio/utente, crea un VIEW .

Ma potresti avere le tue ragioni, quindi ecco qui:

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

Non utilizzare la parola riservata "user" come identificatore.
E "nome" non è quasi mai un buon nome , anche.
E varchar(255) in Postgres in genere indica un malinteso.

Informazioni su varchar(255) :

  • Devo aggiungere un limite di lunghezza arbitrario alle colonne VARCHAR?
  • Qualche aspetto negativo dell'utilizzo del tipo di dati "testo" per la memorizzazione di stringhe?
  • Maggiori dettagli nel manuale.