Skip to content

Historique des lignes ​

Une table MariaDB créée WITH SYSTEM VERSIONING (MariaDB 10.3 et ultérieur) conserve chaque version antérieure de chaque ligne : un UPDATE stocke l’ancienne version avant d’écrire la nouvelle, et un DELETE conserve la ligne qu’il supprime. NabuSQL vous permet de parcourir cet historique.

Faites un clic droit sur une telle table dans la barre latérale et choisissez Historique des lignes. L’entrée n’apparaît que sur les tables versionnées par le système — MySQL n’en a pas, vous ne la verrez donc jamais sur MySQL.

Deux vues ​

VueCe qu’elle affiche
Toutes les versions des lignesChaque version de chaque ligne, la plus récente en premier, avec la période pendant laquelle elle était valide
À un instant donnéLa table exactement telle qu’elle était à la date et à l’heure choisies

Les deux premières colonnes sont Valide du et Valide jusqu’au, suivies des colonnes de la table. La version encore en vigueur n’a pas de fin : sa colonne Valide jusqu’au indique actuelle et la ligne est mise en surbrillance.

Heure du serveur

L’instant choisi est interprété dans le fuseau horaire du serveur, tout comme les heures des deux colonnes. Si le serveur fonctionne dans un autre fuseau horaire que votre ordinateur, saisissez l’heure du serveur.

Lire l’historique ​

  • Une ligne modifiée trois fois apparaît quatre fois — l’originale et chaque modification.
  • Une ligne supprimée est toujours là, avec une heure Valide jusqu’au et sans version actuelle.
  • Les colonnes INVISIBLE restent masquées, comme dans la grille de données.
  • La vue est en lecture seule : l’historique ne peut pas être modifié.
  • 500 versions sont affichées par page ; ‹ et › permettent de passer d’une page à l’autre, et la barre d’outils indique le total.

Types de versionnement pris en charge ​

Les trois formes proposées par MariaDB sont reconnues :

FormeDéclarationColonnes de validité
SimpleCREATE TABLE … WITH SYSTEM VERSIONINGLes colonnes masquées ROW_START / ROW_END de MariaDB
Colonnes de période propres… GENERATED ALWAYS AS ROW START / ROW END plus PERIOD FOR SYSTEM_TIME (a, b)Vos colonnes, visibles ou INVISIBLE
Précision transactionnelleColonnes de période de type BIGINT UNSIGNEDDes identifiants de transaction au lieu d’heures

Rendre une table versionnée ​

Exécutez dans l’éditeur SQL :

sql
ALTER TABLE invoice ADD SYSTEM VERSIONING;

L’historique commence à partir de ce moment ; les modifications antérieures n’ont jamais été enregistrées.

L’éditeur de structure continue de fonctionner sur les tables versionnées. MariaDB refuse tout ALTER sur celles-ci sauf si system_versioning_alter_history vaut KEEP ; NabuSQL le définit donc pour ses propres connexions, et l’historique existant est conservé tel quel.

Taille et nettoyage ​

L’historique n’est jamais supprimé de lui-même, donc une table qui change souvent grossit. Pour supprimer les versions antérieures à un instant donné :

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

Sauvegardes, transferts et renommages ​

  • Une sauvegarde ou un dump contient les lignes actuelles, et la table restaurée est de nouveau versionnée — mais son historique repart de zéro, comme avec mysqldump.
  • Renommer la base de données déplace chaque table en entier, historique compris.
  • Le transfert de données copie les lignes actuelles dans une table ordinaire ; ajoutez ensuite SYSTEM VERSIONING sur la cible si vous le souhaitez aussi.