#789

Przeniesienie starych wierszy do archiwum za jednym razem — bez wyścigów

Archiwizowanie starych zamówień w dwóch instrukcjach (wstawienie do archiwum, a następnie usunięcie z tabeli głównej) jest podatne na wyścig: ktoś może wstawić nowy pasujący wiersz między krokami albo status może się zmienić. Pojedyncze zapytanie oparte na CTE obsługuje to atomowo. Przenieś wszystkie opłacone zamówienia (status = 'paid') utworzone przed 1 stycznia 2024 roku z orders do orders_archive w pojedynczej instrukcji, bez stanu pośredniego. Archiwum powinno otrzymać kolumny id, status oraz amount.

Przykładowy oczekiwany wynik

Tak wygląda poprawna odpowiedź — liczba jej wierszy jest swoista i nie musi odpowiadać tabelom ze schematu.

idamountstatus
1100.00paid
2200.00paid
3150.00paid

Wynik Twojego zapytania pojawi się tutaj