sql >> Databasteknik >  >> RDS >> PostgreSQL

Refaktorera främmande nyckel till fält

Du verkar gå åt fel håll. Ditt ursprungliga, normaliserade schema är vanligtvis överlägset. Om du behöver visa butik/användare, skapa en VIEW .

Men du kan ha dina skäl, så här kommer:

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

Använd inte det reserverade ordet "user" som identifierare.
Och "namn" är nästan aldrig ett bra namn , antingen.
Och varchar(255) i Postgres indikerar vanligtvis ett missförstånd.

Om varchar(255) :

  • Ska jag lägga till en godtycklig längdgräns för VARCHAR-kolumner?
  • Några nackdelar med att använda datatypen "text" för att lagra strängar?
  • Mer information i manualen.


  1. Mitt VARCHAR(MAX)-fält begränsar sig till 4000; vad ger?

  2. Returnera bara de numeriska värdena från en PostgreSQL-databaskolumn

  3. MySQL ERROR 1290 (HY000) --secure-file-priv option

  4. Hur man säkrar Galera Cluster - 8 tips