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)
:
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.