Встречается на собеседованиях • сегодня
Что такое оператор UPSERT
UPSERT — это комбинация операторов INSERT и UPDATE, позволяющая обновлять существующую запись или вставлять новую, если она отсутствует. В SQL это реализуется через ON CONFLICT (PostgreSQL) или INSERT ... ON DUPLICATE KEY UPDATE (MySQL).
Пример в PostgreSQL:
sql
INSERT INTO users (id, name, email)
VALUES (1, 'Alice', 'alice@example.com')
ON CONFLICT (id)
DO UPDATE SET name = EXCLUDED.name, email = EXCLUDED.email;Пример в Python с SQLite:
python
import sqlite3
conn = sqlite3.connect('test.db')
cursor = conn.cursor()
# Создаем таблицу с уникальным полем
cursor.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, email TEXT)')
# UPSERT (SQLite использует синтаксис ON CONFLICT)
cursor.execute('''
INSERT INTO users (id, name, email)
VALUES (1, 'Bob', 'bob@example.com')
ON CONFLICT(id) DO UPDATE SET name=excluded.name, email=excluded.email
''')
conn.commit()Это удобно для атомарного обновления данных без предварительных проверок.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы