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

Как да вмъкна в таблица от друга таблица чрез съпоставяне на стойности?

Можете да се присъедините към допълнителни таблици в UPDATE израз, позволяващ тази предпочитана форма:

UPDATE books b
SET    author_id = a.author_id
FROM   authors a
WHERE  b.author = a.author_name;

Три причини:

  • По-безопасно е. Вашата заявка ще напише NULL стойност във всеки ред, където не е намерен съответстващ автор. Това не изглежда да има значение във вашия случай, но потенциално може да доведе до загуба на данни при подобни заявки, където вече имате данни в колоната за актуализиране. Моята алтернатива не прави нищо, ако не бъде намерен съответстващ автор.

  • По-бързо е. Горното за едно. Но също и защото корелирани подзаявки като имаш мащаб ужасно. Обединяването в таблица обикновено е по-бързо, особено при повече от няколко реда.

  • Той е по-изчистен и по-лесно се адаптира към допълнителни колони.



  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. Влияние на производителността на изгледа върху агрегатната функция спрямо ограничаването на набора от резултати

  3. Агрегирани функции на множество обединени таблици

  4. Колко голям е буферът в PostgreSQL

  5. актуализиране на xml данни с помощта на sql заявка на postgresql