Премести старите редове в архив наведнъж — без състезания
Архивирането на стари поръчки в две команди (вмъкване в архива, после изтриване от основната таблица) е уязвимо към състезания: някой може да вмъкне нов отговарящ на условието ред между стъпките, или статус да се промени. Една заявка, базирана на CTE, се справя с това атомарно.
Премести всички платени поръчки (status = 'paid'), създадени преди 1 януари 2024 г., от orders в orders_archive с една единствена команда, без междинно състояние. Архивът трябва да получи колоните id, status и amount.
Примерен очакван изход
Така изглежда правилният отговор — броят редове е негов собствен, не е задължително да съвпада с таблиците в схемата.
| id | amount | status |
|---|---|---|
| 1 | 100.00 | paid |
| 2 | 200.00 | paid |
| 3 | 150.00 | paid |
Влез, за да видиш историята на решенията
ВходВлез, за да използваш ИИ ментора
Вход