Perkelk senus įrašus į archyvą vienu kartu — be lenktynių
Senų užsakymų archyvavimas dviem komandomis (įterpimas į archyvą, tada šalinimas iš pagrindinės lentelės) yra pažeidžiamas lenktynių: tarp žingsnių kažkas gali įterpti naują sąlygą atitinkančią eilutę arba būsena gali pasikeisti. Viena užklausa su CTE tai išsprendžia atomiškai.
Perkelk iš orders į orders_archive visus apmokėtus užsakymus (statusas paid), sukurtus iki 2024 m. sausio 1 d. — iš karto viena komanda, be tarpinės būsenos. Į archyvinę lentelę turi patekti stulpeliai id, status ir amount.
Laukiamo rezultato pavyzdys
Taip atrodo teisingas atsakymas — jo eilučių skaičius yra savitas, jis neprivalo sutapti su schemos lentelėmis.
| id | amount | status |
|---|---|---|
| 1 | 100.00 | paid |
| 2 | 200.00 | paid |
| 3 | 150.00 | paid |
Prisijunkite, kad matytumėte pateikimų istoriją
PrisijungtiPrisijunkite, kad naudotumėte DI mentorių
Prisijungti