Je lijkt de verkeerde kant op te gaan. Uw oorspronkelijke, genormaliseerde schema is doorgaans superieur. Als u winkel / gebruiker wilt weergeven, maakt u een VIEW . aan .
Maar misschien heb je je redenen, dus hier komt het:
UPDATE purchases p
SET (shop, shop_user) = (s.name, s."user")
FROM shop s
WHERE s.id = p.shop_id;
Gebruik niet het gereserveerde woord "user" als identifier.
En "naam" is bijna nooit een goede naam , ofwel.
En varchar(255) in Postgres duidt meestal op een misverstand.
Over varchar(255) :
varchar(255) - Moet ik een willekeurige lengtelimiet toevoegen aan VARCHAR-kolommen?
- Enige nadelen van het gebruik van datatype "text" voor het opslaan van strings?
- Meer details in de handleiding.