Introduction
BEGIN TRANSACTION starts a group of database actions that should be done together. It helps keep data safe and correct.
BEGIN TRANSACTION;
BEGIN TRANSACTION; UPDATE accounts SET balance = balance - 100 WHERE id = 1; UPDATE accounts SET balance = balance + 100 WHERE id = 2; COMMIT;
BEGIN TRANSACTION; INSERT INTO orders (id, product) VALUES (1, 'Book'); ROLLBACK;
BEGIN TRANSACTION; INSERT INTO users (id, name) VALUES (1, 'Alice'); INSERT INTO users (id, name) VALUES (2, 'Bob'); COMMIT; SELECT * FROM users;
BEGIN TRANSACTION in SQL?BEGIN TRANSACTION doesBEGIN TRANSACTION;.START TRANSACTION; is valid in some systems but not standard SQL; BEGIN; alone is incomplete; TRANSACTION START; is invalid syntax.BEGIN TRANSACTION; UPDATE accounts SET balance = balance - 100 WHERE id = 1; UPDATE accounts SET balance = balance + 100 WHERE id = 2; COMMIT;
BEGIN TRANSACTION; and ended by COMMIT;.BEGIN TRANSACTION
INSERT INTO users (name) VALUES ('Alice');
COMMIT;BEGIN TRANSACTION is missing a semicolon at the end, which is required to separate statements.COMMIT; correctly comes after the insert; the insert syntax is valid.BEGIN TRANSACTION; UPDATE accounts SET balance = balance - 200 WHERE id = 1; UPDATE accounts SET balance = balance + 200 WHERE id = 2; COMMIT;uses
BEGIN TRANSACTION and COMMIT to group both updates safely. UPDATE accounts SET balance = balance - 200 WHERE id = 1; UPDATE accounts SET balance = balance + 200 WHERE id = 2;lacks transaction, risking partial update.
BEGIN TRANSACTION; UPDATE accounts SET balance = balance + 200 WHERE id = 2; COMMIT;only credits without debit.
BEGIN; UPDATE accounts SET balance = balance - 200 WHERE id = 1; ROLLBACK;rolls back, so no change occurs.
BEGIN TRANSACTION; UPDATE accounts SET balance = balance - 200 WHERE id = 1; UPDATE accounts SET balance = balance + 200 WHERE id = 2; COMMIT;-> Option A
Pass the test and this pattern moves unknown