Padaryk, kad updated_at atsinaujintų pats
Backend'o kūrėjai po UPDATE reguliariai pamiršta ranka nustatyti updated_at = NOW(), ir laukas „pasensta“ — neaišku, kada eilutė buvo paliesta paskutinį kartą. Sprendimas — pakabinti ant lentelės trigerį, kuris pats įstato esamą laiką prieš kiekvieną atnaujinimą.
Sukurk lentelę notes su id (pirminis raktas), body (tekstas) ir updated_at (timestamp su zona, numatytoji reikšmė — esamas laikas). Sukurk funkciją touch_updated_at, kuri grąžina eilutę su atnaujintu updated_at, ir trigerį pavadinimu notes_touch, suveikiantį prieš kiekvieną eilutės atnaujinimą lentelėje notes ir iškviečiantį šią funkciją. Po šios konfigūracijos bet koks UPDATE lentelėje notes turi automatiškai pakeisti updated_at į esamą laiką.
Laukiamo rezultato pavyzdys
Taip atrodo teisingas atsakymas — jo eilučių skaičius yra savitas, jis neprivalo sutapti su schemos lentelėmis.
| tgname |
|---|
| notes_touch |
Prisijunkite, kad matytumėte pateikimų istoriją
PrisijungtiPrisijunkite, kad naudotumėte DI mentorių
PrisijungtiPradinės schemos nėra
Ši užduotis prasideda be lentelių — sukursite jas naudodami CREATE TABLE.