Як вставити й оновити одночасно в SQL?

Щоб оновити наявні дані та вставити нові за допомогою однієї операції: Видайте заяву MERGE. Щоб оновити існуючі дані та вставити нові дані, укажіть оператор MERGE з пропозиціями WHEN MATCHED і WHEN NOT MATCHED.

Оператор MERGE поєднує операції INSERT, UPDATE і DELETE в один оператор. Він використовується для виконання операцій над цільовою таблицею на основі даних із вихідної таблиці. Вихідна таблиця зазвичай є тимчасовою або похідною таблицею, що містить дані, які потрібно об’єднати з цільовою таблицею.

За замовчуванням оператор UPDATE оновлює одну таблицю за раз. Однак ви можете використовуйте речення JOIN в операторі UPDATE, щоб оновити дві таблиці в одному операторі. Речення JOIN дозволяє вказати зв’язок між двома таблицями, які потрібно оновити, на основі спільного стовпця або набору стовпців.

Якщо ви хочете вставити багато рядків у таблицю SQL, вам потрібно це зробити повторювати INSERT INTO знову і знову в окремих операторах. INSERT INTO Person VALUES (1, «Амір»); INSERT INTO Person VALUES (2, «Софія»); INSERT INTO Person VALUES (3, "Aya"); …

Оператор INSERT вимагає, щоб усі стовпці були заповнені необхідними значеннями. Інструкція UPDATE не потребує пропозиції WHERE, але якщо її виключити, усі записи оновлюються наданими даними. Навряд чи ви захочете оновити всі записи, тому переконайтеся, що ви включили речення WHERE.

Відповідь. Пояснення: ОБ'ЄДНАТИ є детермінованим оператором, тобто ви не можете оновлювати рядок цільової таблиці кілька разів в одному операторі MERGE. Ви повинні мати привілеї INSERT і UPDATE для цільової таблиці та привілеї SELECT для вихідної таблиці.