Mini-TP : Simulation d'une panne sous PostgreSQL

  1. Se connecter à une base de données : psql mydb

  2. Créer une table test : CREATE TABLE test (a integer);

Question

  1. Commencer une transaction : BEGIN TRANSACTION;

  2. Insérer les deux valeurs 1 et 2 dans la table : INSERT INTO...

  3. Vérifier que les valeurs sont bien dans la table : SELECT * FROM ...

  4. Simuler un crash en fermant le terminal : ROLLBACK du système

  5. Se 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