Flytta gamla rader till arkivet i ett svep — utan kapplöpning
Att arkivera gamla ordrar i två satser (infoga i arkivet, sedan ta bort från huvudtabellen) är känsligt för kapplöpning: någon kan infoga en ny matchande rad mellan stegen, eller en status kan ändras. En enda CTE-baserad fråga hanterar detta atomärt.
Flytta alla betalda ordrar (status = 'paid') som skapades före den 1 januari 2024 från orders till orders_archive i en enda sats, utan mellanliggande tillstånd. Arkivet ska ta emot kolumnerna id, status och amount.
Exempel på förväntad utdata
Så här ser ett korrekt svar ut — radantalet är dess eget, det behöver inte matcha schematabellerna.
| id | amount | status |
|---|---|---|
| 1 | 100.00 | paid |
| 2 | 200.00 | paid |
| 3 | 150.00 | paid |
Logga in för att se historik över inskick
Logga inLogga in för att använda AI-mentorn
Logga in