Skip to content

Zgodovina sprememb ​

Tabela MariaDB, ustvarjena z WITH SYSTEM VERSIONING (MariaDB 10.3 in novejše), hrani vsako starejšo različico vsake vrstice: UPDATE shrani staro različico, preden zapiše novo, DELETE pa obdrži vrstico, ki jo odstrani. NabuSQL vam omogoča pregledovanje te zgodovine.

Tako tabelo v stranski vrstici kliknite z desno tipko in izberite Zgodovina sprememb. Vnos se pojavi samo pri sistemsko verzioniranih tabelah — MySQL jih nima, zato ga na MySQL nikoli ne vidite.

Dva pogleda ​

PogledKaj prikaže
Vse različice vrsticVsako različico vsake vrstice, najnovejše najprej, vsako z obdobjem veljavnosti
Na določen trenutekTabelo natanko takšno, kot je bila ob izbranem datumu in času

Prva dva stolpca sta Velja od in Velja do, sledijo pa stolpci tabele. Različica, ki še velja, nima konca: v stolpcu Velja do piše trenutna, vrstica pa je poudarjena.

Čas strežnika

Izbrani trenutek se bere v časovnem pasu strežnika, prav tako časi v obeh stolpcih. Če strežnik teče v drugem časovnem pasu kot vaš računalnik, vnesite čas strežnika.

Branje zgodovine ​

  • Vrstica, spremenjena trikrat, se pojavi štirikrat — izvirnik in vsaka sprememba.
  • Izbrisana vrstica je še vedno tam, s časom Velja do in brez trenutne različice.
  • Stolpci INVISIBLE ostanejo skriti, kot v mreži podatkov.
  • Pogled je samo za branje: zgodovine ni mogoče urejati.
  • Na stran se prikaže 500 različic; ‹ in › premikata med stranmi, orodna vrstica pa pokaže skupno število.

Podprte vrste verzioniranja ​

Prepoznane so vse tri oblike, ki jih ponuja MariaDB:

OblikaKako se deklariraStolpci veljavnosti
NavadnaCREATE TABLE … WITH SYSTEM VERSIONINGSkrita stolpca MariaDB ROW_START / ROW_END
Lastni stolpci obdobja… GENERATED ALWAYS AS ROW START / ROW END in PERIOD FOR SYSTEM_TIME (a, b)Vaši stolpci, vidni ali INVISIBLE
Natančno po transakcijahStolpci obdobja vrste BIGINT UNSIGNEDID-ji transakcij namesto časov

Kako tabelo verzionirati ​

V urejevalniku SQL izvedite:

sql
ALTER TABLE invoice ADD SYSTEM VERSIONING;

Zgodovina se začne od tega trenutka; prejšnje spremembe niso bile nikoli zabeležene.

Urejevalnik strukture na verzioniranih tabelah še naprej deluje. MariaDB zavrne vsak ALTER na njih, razen če je system_versioning_alter_history nastavljen na KEEP, zato ga NabuSQL nastavi za svoje povezave; obstoječa zgodovina ostane, kot je.

Velikost in čiščenje ​

Zgodovina se nikoli ne odstrani sama, zato tabela, ki se pogosto spreminja, raste. Za odstranitev različic, starejših od danega trenutka:

sql
DELETE HISTORY FROM invoice BEFORE SYSTEM_TIME '2026-01-01 00:00:00';

Varnostne kopije, prenosi in preimenovanja ​

  • Varnostna kopija ali dump vsebuje trenutne vrstice, obnovljena tabela pa je spet verzionirana — vendar se njena zgodovina začne na novo, kot pri mysqldump.
  • Preimenovanje baze premakne vsako tabelo v celoti, skupaj z zgodovino.
  • Prenos podatkov kopira trenutne vrstice v navadno tabelo; če ga želite tudi na cilju, pozneje dodajte SYSTEM VERSIONING.