#789

Verplaats oude rijen in één keer naar het archief — zonder race conditions

Oude orders archiveren in twee statements (invoegen in het archief, daarna verwijderen uit de hoofdtabel) is gevoelig voor race conditions: tussen de stappen door kan iemand een nieuwe rij invoegen die aan de voorwaarde voldoet, of kan een status omslaan. Eén enkele query op basis van een CTE handelt dit atomair af. Verplaats alle betaalde orders (status = 'paid') die zijn aangemaakt vóór 1 januari 2024 van orders naar orders_archive in één enkel statement, zonder tussentoestand. Het archief moet de kolommen id, status en amount ontvangen.

Voorbeeld van verwachte uitvoer

Zo ziet een correct antwoord eruit — het aantal rijen is op zichzelf staand en hoeft niet overeen te komen met de schematabellen.

idamountstatus
1100.00paid
2200.00paid
3150.00paid

Je queryresultaat verschijnt hier