Du scheinst den falschen Weg zu gehen. Ihr ursprüngliches, normalisiertes Schema ist normalerweise überlegen. Wenn Sie Shop / Benutzer anzeigen müssen, erstellen Sie eine VIEW
.
Aber Sie können Ihre Gründe haben, also hier ist:
UPDATE purchases p
SET (shop, shop_user) = (s.name, s."user")
FROM shop s
WHERE s.id = p.shop_id;
Verwenden Sie nicht das reservierte Wort "user"
als Identifikator.
Und "Name" ist selten ein guter Name , entweder.
Und varchar(255)
in Postgres weist normalerweise auf ein Missverständnis hin.
Über varchar(255)
:
varchar(255)
- Soll ich VARCHAR-Spalten eine beliebige Längenbegrenzung hinzufügen?
- Irgendwelche Nachteile bei der Verwendung des Datentyps „Text“ zum Speichern von Strings?
- Mehr Details im Handbuch.