sql >> Base de Datos >  >> RDS >> PostgreSQL

Refactorizar clave externa a campos

Parece que vas por el camino equivocado. Su esquema normalizado original suele ser superior. Si necesita mostrar la tienda/usuario, cree un VIEW .

Pero puede que tengas tus razones, así que aquí va:

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

No utilice la palabra reservada "user" como identificador.
Y "nombre" casi nunca es un buen nombre , tampoco.
Y varchar(255) en Postgres generalmente indica un malentendido.

Acerca de varchar(255) :

  • ¿Debería agregar un límite de longitud arbitrario a las columnas VARCHAR?
  • ¿Alguna desventaja de usar el tipo de datos "texto" para almacenar cadenas?
  • Más detalles en el manual.