A transaction is a sequence of operations performed on a database as a single logical unit of work. The effects of all the SQL statements in a transaction can be either all committed or all rolled back (undone from the database)
CREATE TABLE widgetInventory (
id INTEGER PRIMARY KEY,
description TEXT,
onhand INTEGER NOT NULL
);
CREATE TABLE widgetSales (
id INTEGER PRIMARY KEY,
inv_id INTEGER,
quan INTEGER,
price INTEGER
);
INSERT INTO widgetInventory ( description, onhand ) VALUES ( 'rock', 25 );
INSERT INTO widgetInventory ( description, onhand ) VALUES ( 'paper', 25 );
INSERT INTO widgetInventory ( description, onhand ) VALUES ( 'scissors', 25 );
SELECT * FROM widgetInventory;
SELECT * FROM widgetSales;
BEGIN TRANSACTION;
INSERT INTO widgetSales ( inv_id, quan, price ) VALUES ( 1, 5, 500 );
UPDATE widgetInventory SET onhand = ( onhand - 5 ) WHERE id = 1;
END TRANSACTION;