Що таке ON CONFLICT в SQL?
Оператор ON CONFLICT у мові SQL використовується у команді INSERT для управління дублікатами даних у разі порушення унікальності чи обмежень цілісності у таблиці. Цей оператор надає способи обробки конфліктів під час вставлення нових даних.
Синтаксис:
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...)
ON CONFLICT (conflict_column)
DO UPDATE SET column1 = value1, column2 = value2, ...;
Параметри:
table_name: Ім'я таблиці, в яку виконується вставка даних.column1, column2, ...: Список стовпців для вставки даних.value1, value2, ...: Значення для вставки у відповідні колонки.conflict_column: Стовпець, який використовується для визначення конфлікту даних.column1 = value1, column2 = value2, ...: Список стовпців та їх нових значень для оновлення даних при конфлікті.
Приклад:
Припустимо, у нас є таблиця "Students" з унікальним обмеженням на стовпець "StudentID", і ми хочемо вставити нового студента або оновити існуючого, якщо він вже існує:
INSERT INTO Students (StudentID, FirstName , LastName, GPA)
VALUES (1, 'Alice', 'Johnson', 3.5)
ON CONFLICT (StudentID)
DO UPDATE SET GPA = EXCLUDED.GPA;
Коментарі