Mini-TP : Simulation d'une panne sous PostgreSQL
Se connecter à une base de données :
psql mydbCré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 :
ROLLBACKdu 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 CRASH2
SELECT * FROM test;
1
a
2
---
3
(0 rows)
4