PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Преобразуване на връзка "много към много" в "един към много" в PostgreSQL

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

Ако трябва да имате няколко реда за една bar (което не трябва, според вашето описание) единият ред ще бъде актуализиран многократно и резултатът е произволен.

Тази форма на заявката обикновено се представя по-добре от корелирана подзаявка.

Обърнете внимание, че първичният ключ на bar наистина трябва да се нарича bar_id - Използвам това име в заявката.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изтриване на дублиращи се редове (не изтривайте всички дублирани)

  2. кортеж, актуализиран едновременно при създаване на функции в postgresql / PL/pgSQL

  3. Ограничете връзката на външния ключ до редове от свързани подтипове

  4. Как да активирате тих режим за команди на Postgres на Heroku

  5. PostgreSQL:Предупреждение:Кодовата страница на конзолата (437) се различава от кодовата страница на Windows (1252)