sql >> Databasteknik >  >> RDS >> PostgreSQL

Konvertera en många-till-många-relation till en-till-många i PostgreSQL

UPDATE bar b
SET    foo_id = fb.foo_id
FROM   foo_bar fb
WHERE  fb.bar_id = b.bar_id;

Om du ska ha flera rader för en bar (vilket du inte borde, enligt din beskrivning) den ena raden kommer att uppdateras flera gånger och resultatet är godtyckligt.

Den här formen av frågan fungerar i allmänhet bättre än en korrelerad underfråga.

Observera att primärnyckeln för bar borde egentligen heta bar_id - Jag använder det namnet i frågan.



  1. Definiera flerradiga strängar i psql

  2. ingen ocijdbc12 i java.library.path

  3. Maximal längd på ett tabellnamn i MySQL

  4. MariaDB SUBSTR() Förklarad