Skip to content

Cronologia delle righe ​

Una tabella MariaDB creata con WITH SYSTEM VERSIONING (MariaDB 10.3 e successivi) conserva ogni versione precedente di ogni riga: un UPDATE salva la versione vecchia prima di scrivere la nuova, e un DELETE conserva la riga che elimina. NabuSQL vi permette di consultare questa cronologia.

Clic destro su una tabella di questo tipo nella barra laterale e scegliete Cronologia modifiche. La voce compare solo sulle tabelle con versionamento di sistema — MySQL non ne ha, quindi su MySQL non la vedrete mai.

Due viste ​

VistaCosa mostra
Tutte le versioni delle righeOgni versione di ogni riga, le più recenti prima, ciascuna con l'intervallo in cui era valida
Stato a un istanteLa tabella esattamente com'era alla data e ora scelte

Le prime due colonne sono Valida da e Valida fino a, seguite dalle colonne della tabella. La versione ancora in vigore non ha fine: in Valida fino a compare attuale e la riga è evidenziata.

Ora del server

L'istante scelto è interpretato nel fuso orario del server, come gli orari nelle due colonne. Se il server usa un fuso diverso dal vostro computer, inserite l'ora del server.

Leggere la cronologia ​

  • Una riga modificata tre volte compare quattro volte — l'originale e ogni modifica.
  • Una riga eliminata resta presente, con un orario in Valida fino a e nessuna versione attuale.
  • Le colonne INVISIBLE restano nascoste, come nella griglia dati.
  • La vista è di sola lettura: la cronologia non si può modificare.
  • Si mostrano 500 versioni per pagina; ‹ e › cambiano pagina e la barra degli strumenti indica il totale.

Forme di versionamento supportate ​

Sono riconosciute tutte e tre le forme offerte da MariaDB:

FormaCome si dichiaraColonne di validità
SempliceCREATE TABLE … WITH SYSTEM VERSIONINGLe colonne nascoste ROW_START / ROW_END di MariaDB
Colonne di periodo proprie… GENERATED ALWAYS AS ROW START / ROW END più PERIOD FOR SYSTEM_TIME (a, b)Le vostre colonne, visibili o INVISIBLE
Per transazioneColonne di periodo di tipo BIGINT UNSIGNEDID di transazione al posto degli orari

Attivare il versionamento ​

Eseguite nell'editor SQL:

sql
ALTER TABLE fattura ADD SYSTEM VERSIONING;

La cronologia parte da quel momento; le modifiche precedenti non sono mai state registrate.

L'editor della struttura funziona anche sulle tabelle versionate. MariaDB rifiuta qualsiasi ALTER su di esse a meno che system_versioning_alter_history sia KEEP, quindi NabuSQL lo imposta per le proprie connessioni; la cronologia esistente resta invariata.

Dimensioni e pulizia ​

La cronologia non viene mai rimossa da sola, quindi una tabella modificata spesso cresce. Per eliminare le versioni più vecchie di un dato istante:

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

Backup, trasferimenti e rinomina ​

  • Un backup o dump porta le righe attuali e la tabella ripristinata è di nuovo versionata — ma la sua cronologia riparte da zero, come con mysqldump.
  • Rinominare il database sposta ogni tabella per intero, cronologia compresa.
  • Il trasferimento dati copia le righe attuali in una tabella normale; se volete il versionamento anche sulla destinazione, aggiungete SYSTEM VERSIONING in seguito.