Модификация записей таблицы через SQL‑запрос

Вставьте две копии существующей строки через INSERT … SELECT с UNION ALL. Явно перечислите копируемые поля и не переносите уникальный автоидентификатор.

Короткий ответ

Что ответить на собеседовании

Вставьте две копии существующей строки через INSERT … SELECT с UNION ALL. Явно перечислите копируемые поля и не переносите уникальный автоидентификатор.

Подробный разбор

Ответ с пояснениями

Условие

В таблице orders присутствует единственная запись: апельсин — 100

Составьте SQL‑запрос, который после выполнения добавит в таблицу ещё две такие же строки, чтобы в итоге было три одинаковые записи: апельсин — 100 апельсин — 100 апельсин — 100

Ответ

Вставьте две копии существующей строки через INSERT … SELECT с UNION ALL. Явно перечислите копируемые поля и не переносите уникальный автоидентификатор.

Если поля называются product и price:

INSERT INTO orders (product, price)
SELECT product, price FROM orders
UNION ALL
SELECT product, price FROM orders;

При одной исходной строке запрос добавит две и оставит всего три. Названия колонок здесь условные, их нужно заменить на реальные. UNION без ALL убрал бы одинаковые строки из результата выборки. Повторный запуск снова размножит данные, поэтому операция не идемпотентна. Уникальное ограничение на сами product/price не позволит хранить такие повторы.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее