Apparence
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
| Vue | Ce qu’elle affiche |
|---|---|
| Toutes les versions des lignes | Chaque 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
INVISIBLErestent 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 :
| Forme | Déclaration | Colonnes de validité |
|---|---|---|
| Simple | CREATE TABLE … WITH SYSTEM VERSIONING | Les 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 transactionnelle | Colonnes de période de type BIGINT UNSIGNED | Des 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 VERSIONINGsur la cible si vous le souhaitez aussi.
