Spostare le righe vecchie nell'archivio in un colpo solo, senza race condition
Archiviare gli ordini vecchi con due istruzioni (inserimento nell'archivio, poi eliminazione dalla tabella principale) è soggetto a race condition: qualcuno può inserire una nuova riga corrispondente tra i due passaggi, oppure uno stato può cambiare. Un'unica query basata su CTE gestisce tutto in modo atomico.
Sposta tutti gli ordini pagati (status = 'paid') creati prima del 1 gennaio 2024 da orders a orders_archive in un'unica istruzione, senza stato intermedio. L'archivio deve ricevere le colonne id, status e amount.
Esempio di output atteso
Ecco come appare una risposta corretta — il suo numero di righe è a sé stante, non deve corrispondere alle tabelle dello schema.
| id | amount | status |
|---|---|---|
| 1 | 100.00 | paid |
| 2 | 200.00 | paid |
| 3 | 150.00 | paid |
Accedi per vedere la cronologia degli invii
AccediAccedi per usare l'AI Mentor
Accedi