Mini-TP : Simulation d'une panne sous PostgreSQL
Se connecter à une base de données :
psql mydb
Créer une table
test
:CREATE TABLE test (a integer);
Question
Commencer une transaction :
BEGIN TRANSACTION;
Insérer les deux valeurs 1 et 2 dans la table :
INSERT INTO...
Vérifier que les valeurs sont bien dans la table :
SELECT * FROM ...
Simuler un crash en fermant le terminal :
ROLLBACK
du systèmeSe reconnecter et vérifier que les valeurs ne sont plus dans la table :
SELECT * FROM ...
Solution
1
BEGIN TRANSACTION;
2
INSERT INTO test(a) VALUES (1);
3
INSERT INTO test(a) VALUES (2);
4
SELECT * FROM test;
5
6
7
1
a
2
---
3
1
4
2
1
-- SIMULATION DE CRASH
2
SELECT * FROM test;
1
a
2
---
3
(0 rows)
4