Что такое 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;
Комментарии