#789

Flyt gamle rækker til arkivet på én gang — uden race conditions

Arkivering af gamle ordrer i to sætninger (indsæt i arkivet, slet derefter fra hovedtabellen) er udsat for race conditions: nogen kan indsætte en ny matchende række mellem trinnene, eller en status kan skifte. En enkelt CTE-baseret forespørgsel håndterer dette atomart. Flyt alle betalte ordrer (status = 'paid') oprettet før 1. januar 2024 fra orders til orders_archive i én enkelt sætning, uden mellemtilstand. Arkivet skal modtage kolonnerne id, status og amount.

Eksempel på forventet output

Sådan ser et korrekt svar ud — dets rækketal er dets eget og behøver ikke at matche skematabellerne.

idamountstatus
1100.00paid
2200.00paid
3150.00paid

Resultatet af din forespørgsel vises her