Transaction
Una transacció agrupa diverses sentències en una sola operació, que o passa sencera o no passa gens.
Introducció
Transferir 200 € d’un compte a un altre són dues sentències:
update accounts set balance = balance - 200 where account_id = 1;
update accounts set balance = balance + 200 where account_id = 2;Entre la primera i la segona hi ha un instant en què els 200 € no són enlloc.
Si en aquell instant es va la llum, el programa peta o la segona sentència falla, els diners han desaparegut i la base de dades no ho sap.
Una transacció és la manera de dir-li a la base de dades que aquestes dues sentències són una sola operació: o passen totes dues, o no en passa cap.
Entorn de treball
Crea la base de dades bank.db:
sqlite bank.db (
account_id integer primary key,
owner text not null,
balance real not null check (balance >= 0)
);
insert into accounts (owner, balance) values
('Eva Vilaregut', 1200.0),
('Jordi Salvat', 300.0),
('Roser Aymerich', 4500.0);select * from accounts;
1|Eva Vilaregut|1200.0
2|Jordi Salvat|300.0
3|Roser Aymerich|4500.0Estàs llegint una vista prèvia.
Inicia la sessió amb Google per llegir la pàgina sencera.
Inicia la sessió amb GoogleNomés et demanarem que acceptis les condicions del servei.