UPDATE bar b
SET foo_id = fb.foo_id
FROM foo_bar fb
WHERE fb.bar_id = b.bar_id;
Jeśli powinieneś mieć wiele wierszy dla jednego bar
(czego nie powinieneś, zgodnie z twoim opisem) jeden wiersz będzie aktualizowany wiele razy, a wynik jest dowolny.
Ta forma zapytania generalnie działa lepiej niż skorelowane podzapytanie.
Zwróć uwagę, że klucz podstawowy bar
powinien mieć nazwę bar_id
- Używam tej nazwy w zapytaniu.