Skip to content

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 redakaSvaku verziju svakog retka, najnovije prve, svaku s razdobljem u kojem je vrijedila
Stanje u trenutkuTablicu 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.
  • INVISIBLE stupci 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:

OblikKako se zadajeStupci valjanosti
OsnovniCREATE TABLE … WITH SYSTEM VERSIONINGMariaDB-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 transakcijamaStupci razdoblja tipa BIGINT UNSIGNEDID-ovi transakcija umjesto vremena

Uključivanje verzioniranja ​

Pokrenite u SQL editoru:

sql
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:

sql
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 VERSIONING naknadno.