Povijest promjena
MariaDB tablica stvorena s WITH SYSTEM VERSIONING (MariaDB 10.3 i noviji) čuva svaku raniju verziju svakog retka: UPDATE spremi staru verziju prije nego što upiše novu, a DELETE zadrži redak koji briše. NabuSQL vam omogućuje da tu povijest pregledate.
Desni klik na takvu tablicu u bočnoj traci pa Povijest promjena. Stavka se pojavljuje samo na tablicama sa sistemskim verzioniranjem — MySQL ih nema, pa je na MySQL-u nikad ne vidite.
Dva prikaza
| Prikaz | Što pokazuje |
|---|---|
| Sve verzije redaka | Svaku verziju svakog retka, najnovije prve, svaku s razdobljem u kojem je vrijedila |
| Stanje u trenutku | Tablicu točno onakvu kakva je bila u datumu i vremenu koje odaberete |
Prva dva stupca su Vrijedi od i Vrijedi do, a slijede stupci same tablice. Verzija koja još vrijedi nema kraj: u Vrijedi do piše aktualno i redak je istaknut.
Vrijeme servera
Trenutak koji odaberete tumači se u vremenskoj zoni servera, kao i vremena u oba stupca. Ako server radi u drugoj vremenskoj zoni od vašeg računala, upišite vrijeme servera.
Čitanje povijesti
- Redak promijenjen tri puta pojavljuje se četiri puta — original i svaka promjena.
- Obrisani redak je i dalje tu, s vremenom u Vrijedi do i bez aktualne verzije.
INVISIBLEstupci ostaju skriveni, kao i u tablici podataka.- Prikaz je samo za čitanje: povijest se ne može mijenjati.
- Po stranici se prikazuje 500 verzija; ‹ i › listaju stranice, a alatna traka pokazuje ukupan broj.
Podržani oblici verzioniranja
Prepoznaju se sva tri oblika koja MariaDB nudi:
| Oblik | Kako se zadaje | Stupci valjanosti |
|---|---|---|
| Osnovni | CREATE TABLE … WITH SYSTEM VERSIONING | MariaDB-ovi skriveni ROW_START / ROW_END |
| Vlastiti stupci razdoblja | … GENERATED ALWAYS AS ROW START / ROW END uz PERIOD FOR SYSTEM_TIME (a, b) | Vaši stupci, vidljivi ili INVISIBLE |
| Po transakcijama | Stupci razdoblja tipa BIGINT UNSIGNED | ID-ovi transakcija umjesto vremena |
Uključivanje verzioniranja
Pokrenite u SQL editoru:
ALTER TABLE racun ADD SYSTEM VERSIONING;Povijest počinje od tog trenutka; ranije promjene nikad nisu zabilježene.
Uređivanje strukture radi i na tablicama s verzioniranjem. MariaDB odbija svaki ALTER nad njima osim ako je system_versioning_alter_history postavljen na KEEP, pa ga NabuSQL postavlja za svoje konekcije; postojeća povijest ostaje kakva jest.
Veličina i čišćenje
Povijest se nikad ne briše sama, pa tablica koja se često mijenja raste. Da biste uklonili verzije starije od nekog trenutka:
DELETE HISTORY FROM racun BEFORE SYSTEM_TIME '2026-01-01 00:00:00';Sigurnosne kopije, prijenos i preimenovanje
- Sigurnosna kopija ili dump nosi aktualne retke, a obnovljena tablica ponovno ima verzioniranje — ali povijest joj počinje iznova, kao i kod
mysqldump-a. - Preimenovanje baze premješta svaku tablicu cijelu, zajedno s poviješću.
- Prijenos podataka kopira aktualne retke u običnu tablicu; ako verzioniranje želite i na odredištu, dodajte
SYSTEM VERSIONINGnaknadno.
