U dinamičnom svijetu web razvoja, datum i vrijeme su važni aspekti, posebno kod manipulacije podacima. U SQL-u, `CREATED_AT` i `UPDATED_AT` stupci igraju vitalnu ulogu u praćenju kada je zapis inicijalno dodan i kada je zadnji put ažuriran. Sistem efikasno održava ove kolone automatski. Ova metoda je moćna u očuvanju integriteta podataka u cijelom sistemu.
CREATED_AT je vremenska oznaka kada je zapis inicijalno ubačen u bazu podataka, dok UPDATED_AT je vremenska oznaka kada je bilo koja radnja ažuriranja izvršena na zapisu. Ove vremenske oznake služe kao alat za reviziju sistema, pružajući uvid u životni ciklus zapisa.
Kreiranje kolona vremenske oznake u SQL-u
Kreiranje ovih stupaca vremenske oznake uključuje jezik definicije SQL podataka (DDL). Isječak koda u nastavku kreira novu tabelu sa stupcima vremenske oznake `CREATED_AT` i `UPDATED_AT`:
CREATE TABLE sample_table ( id INT PRIMARY KEY, data VARCHAR(100), CREATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP, UPDATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
`DEFAULT CURRENT_TIMESTAMP` postavlja zadanu vrijednost kolone na trenutni datum i vrijeme. A `ON UPDATE CURRENT_TIMESTAMP` će postaviti vrijednost stupca na trenutni datum i vrijeme kad god se izvrši bilo kakva radnja ažuriranja u redu.
Dodavanje kolone nakon kreiranja
U mnogim slučajevima, postojat će potreba za dodavanjem `CREATED_AT` i `UPDATED_AT` stupca za kreiranje post tablice. Ovo se može postići korištenjem SQL `ALTER TABLE` izraza koji mijenja postojeću strukturu tablice.
ALTER TABLE sample_table ADD ( CREATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP, UPDATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
Uz gornji SQL izraz, stupci `CREATED_AT` i `UPDATED_AT` se neprimjetno dodaju u već postojeću tablicu pod nazivom `sample_table`.
Implementacija okidača
U nekim sistemima baza podataka kao što je SQLITE, moramo koristiti okidače kao alternativu jer `ON UPDATE CURRENT_TIMESTAMP` nije podržano.
Da bismo ovo implementirali, kreiramo okidač `AFTER UPDATE`, koji automatski ažurira stupac `UPDATED_AT` nakon bilo kakve izmjene zapisa.
CREATE TRIGGER update_timestamp AFTER UPDATE ON sample_table FOR EACH ROW BEGIN UPDATE sample_table SET UPDATED_AT = CURRENT_TIMESTAMP WHERE id = NEW.id; END;
Ovaj okidač se pokreće nakon ažuriranja `sample_table`, postavljajući kolonu `UPDATED_AT` na trenutnu vremensku oznaku.
Implementacija CREATED_AT i UPDATED_AT stupaca u vaše SQL tablice pruža dinamičan način praćenja zapisa od kreiranja do svakog sljedećeg ažuriranja. Ovaj oblik revizije sistema jača integritet podataka, osiguravajući neometano praćenje i održavanje zapisa baze podataka.
