Alte Zeilen in einem Zug ins Archiv verschieben — ohne Race Conditions
Das Archivieren alter Bestellungen in zwei Anweisungen (Einfügen ins Archiv, dann Löschen aus der Haupttabelle) ist anfällig für Race Conditions: Zwischen den Schritten kann jemand eine neue passende Zeile einfügen, oder ein Status kann sich ändern. Eine einzige CTE-basierte Abfrage erledigt dies atomar.
Verschiebe alle bezahlten Bestellungen (status = 'paid'), die vor dem 1. Januar 2024 erstellt wurden, von orders nach orders_archive in einer einzigen Anweisung, ohne Zwischenzustand. Das Archiv soll die Spalten id, status und amount erhalten.
Beispiel der erwarteten Ausgabe
So sieht eine korrekte Antwort aus — ihre Zeilenanzahl ist eigenständig und muss nicht mit den Schematabellen übereinstimmen.
| id | amount | status |
|---|---|---|
| 1 | 100.00 | paid |
| 2 | 200.00 | paid |
| 3 | 150.00 | paid |
Melde dich an, um den Einreichungsverlauf zu sehen
AnmeldenMelde dich an, um den KI-Mentor zu nutzen
Anmelden