PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Refatorar chave estrangeira para campos


O seu parece seguir o caminho errado. Seu esquema original normalizado é normalmente superior. Se você precisar exibir loja/usuário, crie um VIEW .

Mas você pode ter seus motivos, então aqui vai:
UPDATE purchases p
SET   (shop, shop_user) = (s.name, s."user")
FROM   shop s
WHERE  s.id = p.shop_id;

Não use a palavra reservada "user" como identificador.
E "nome" dificilmente é um bom nome , também.
E varchar(255) no Postgres normalmente indica um mal-entendido.

Sobre varchar(255) :

  • Devo adicionar um limite de comprimento arbitrário às colunas VARCHAR?
  • Alguma desvantagem de usar o tipo de dados "texto" para armazenar strings?
  • Mais detalhes no manual.