sql >> Database >  >> RDS >> PostgreSQL

Refactor externe sleutel naar velden

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

  • 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.


  1. Waarom krijg ik Kan parameter 2 niet doorgeven door een verwijzingsfout wanneer ik bindParam gebruik met een constante waarde?

  2. Alleen de datum retourneren van een SQL Server DateTime-gegevenstype

  3. SQL Server 2016:altijd versleuteld

  4. PHP-verbinding mislukt:SQLSTATE [HY000] [2002] Verbinding geweigerd