#789

Μετακίνηση παλιών εγγραφών στο αρχείο με μία κίνηση — χωρίς συνθήκες ανταγωνισμού

Η αρχειοθέτηση παλιών παραγγελιών με δύο εντολές (εισαγωγή στο αρχείο, μετά διαγραφή από τον κύριο πίνακα) είναι επιρρεπής σε συνθήκες ανταγωνισμού: κάποιος μπορεί να εισαγάγει μια νέα εγγραφή που πληροί το κριτήριο ανάμεσα στα βήματα, ή ένα status μπορεί να αλλάξει. Ένα μοναδικό ερώτημα βασισμένο σε CTE το χειρίζεται ατομικά. Μετακινήστε όλες τις πληρωμένες παραγγελίες (status = 'paid') που δημιουργήθηκαν πριν από την 1η Ιανουαρίου 2024 από τον orders στον orders_archive με μία μόνο εντολή, χωρίς ενδιάμεση κατάσταση. Το αρχείο πρέπει να λάβει τις στήλες id, status και amount.

Δείγμα αναμενόμενης εξόδου

Έτσι μοιάζει μια σωστή απάντηση — το πλήθος γραμμών της είναι δικό της, δεν χρειάζεται να ταιριάζει με τους πίνακες του σχήματος.

idamountstatus
1100.00paid
2200.00paid
3150.00paid

Το αποτέλεσμα του ερωτήματός σας θα εμφανιστεί εδώ