Bird
Raised Fist0
SQLquery~5 mins

COMMIT and ROLLBACK behavior in SQL

Choose your learning style10 modes available
Introduction
COMMIT saves your changes to the database permanently. ROLLBACK undoes changes you made since the last save.
When you finish adding or changing data and want to keep it safe.
If you make a mistake and want to undo recent changes.
When you want to group several changes together and save them all at once.
During a bank transfer to make sure money is moved correctly or not at all.
When testing changes and you want to cancel them if something goes wrong.
Syntax
SQL
COMMIT;
ROLLBACK;
COMMIT makes all changes since the last COMMIT or ROLLBACK permanent.
ROLLBACK undoes all changes since the last COMMIT or ROLLBACK.
Examples
Adds a new account for Alice and saves it permanently.
SQL
INSERT INTO accounts (name, balance) VALUES ('Alice', 1000);
COMMIT;
Tries to subtract 100 from Alice's balance but then undoes the change.
SQL
UPDATE accounts SET balance = balance - 100 WHERE name = 'Alice';
ROLLBACK;
Moves 100 from Alice to Bob and saves both changes together.
SQL
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE name = 'Alice';
UPDATE accounts SET balance = balance + 100 WHERE name = 'Bob';
COMMIT;
Sample Program
This example tries to move 200 from Alice to Bob but then cancels the changes with ROLLBACK. The final SELECT shows original balances.
SQL
CREATE TABLE accounts (name VARCHAR(20), balance INT);

INSERT INTO accounts VALUES ('Alice', 1000);
INSERT INTO accounts VALUES ('Bob', 500);

-- Start a transaction
UPDATE accounts SET balance = balance - 200 WHERE name = 'Alice';
UPDATE accounts SET balance = balance + 200 WHERE name = 'Bob';

-- Undo the changes
ROLLBACK;

SELECT * FROM accounts ORDER BY name;
OutputSuccess
Important Notes
Some databases auto-commit changes unless you start a transaction explicitly.
Always COMMIT after a group of related changes to save them.
Use ROLLBACK to avoid partial or wrong data updates.
Summary
COMMIT saves all recent changes permanently.
ROLLBACK undoes all recent changes since last save.
Use them to control when your data updates become final.

Practice

(1/5)
1. What does the COMMIT command do in a database transaction?
easy
A. It locks the database to prevent changes.
B. It undoes all changes made during the transaction.
C. It starts a new transaction.
D. It saves all changes made during the transaction permanently.

Solution

  1. Step 1: Understand the purpose of COMMIT

    The COMMIT command finalizes all changes made in the current transaction and saves them permanently in the database.
  2. Step 2: Compare with other options

    ROLLBACK undoes changes, starting a transaction is done by BEGIN or START TRANSACTION, and locking is a different operation.
  3. Final Answer:

    It saves all changes made during the transaction permanently. -> Option D
  4. Quick Check:

    COMMIT = Save changes permanently [OK]
Hint: COMMIT means save changes permanently [OK]
Common Mistakes:
  • Confusing COMMIT with ROLLBACK
  • Thinking COMMIT starts a transaction
  • Assuming COMMIT locks the database
2. Which of the following is the correct syntax to undo changes made in the current transaction?
easy
A. COMMIT;
B. ROLLBACK;
C. UNDO;
D. SAVE;

Solution

  1. Step 1: Identify the command to undo changes

    The ROLLBACK command is used to undo all changes made since the last COMMIT.
  2. Step 2: Check syntax correctness

    ROLLBACK; is the correct syntax. COMMIT; saves changes, UNDO; and SAVE; are not valid SQL commands for this purpose.
  3. Final Answer:

    ROLLBACK; -> Option B
  4. Quick Check:

    ROLLBACK = Undo changes [OK]
Hint: ROLLBACK undoes changes, COMMIT saves them [OK]
Common Mistakes:
  • Using COMMIT to undo changes
  • Assuming UNDO is a valid SQL command
  • Confusing SAVE with COMMIT
3. Consider this sequence of SQL commands:
BEGIN TRANSACTION;
INSERT INTO users (id, name) VALUES (1, 'Alice');
ROLLBACK;
SELECT * FROM users WHERE id = 1;

What will the SELECT query return?
medium
A. No rows
B. A row with id=1 and name='Alice'
C. Syntax error
D. All rows in the users table

Solution

  1. Step 1: Analyze the transaction commands

    The INSERT adds a row with id=1 and name='Alice', but then ROLLBACK undoes this change.
  2. Step 2: Understand the effect of ROLLBACK on SELECT

    Since the insert was rolled back, the row does not exist. The SELECT query will find no rows with id=1.
  3. Final Answer:

    No rows -> Option A
  4. Quick Check:

    ROLLBACK removes inserted rows [OK]
Hint: ROLLBACK removes changes before SELECT runs [OK]
Common Mistakes:
  • Assuming inserted row remains after ROLLBACK
  • Thinking ROLLBACK affects only future queries
  • Confusing ROLLBACK with COMMIT
4. You run this SQL code:
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 5;
COMMIT;
ROLLBACK;

What is the effect of the final ROLLBACK?
medium
A. It undoes the UPDATE and restores the original balance.
B. It causes a syntax error because ROLLBACK cannot follow COMMIT.
C. It has no effect because changes were already committed.
D. It commits the changes again.

Solution

  1. Step 1: Understand COMMIT effect

    COMMIT saves all changes permanently, so the UPDATE is finalized.
  2. Step 2: Analyze ROLLBACK after COMMIT

    ROLLBACK after COMMIT does nothing because there is no active transaction to undo.
  3. Final Answer:

    It has no effect because changes were already committed. -> Option C
  4. Quick Check:

    ROLLBACK after COMMIT = no effect [OK]
Hint: ROLLBACK only undoes uncommitted changes [OK]
Common Mistakes:
  • Thinking ROLLBACK undoes committed changes
  • Assuming ROLLBACK causes error after COMMIT
  • Confusing order of commands
5. You want to insert multiple rows into a table but only save them if all inserts succeed. Which sequence correctly uses COMMIT and ROLLBACK to achieve this?
1. BEGIN TRANSACTION;
2. INSERT INTO orders VALUES (101, 'Book');
3. INSERT INTO orders VALUES (102, 'Pen');
4. -- If both inserts succeed, then ___;
5. -- If any insert fails, then ___;
hard
A. 4: COMMIT; 5: ROLLBACK;
B. 4: ROLLBACK; 5: COMMIT;
C. 4: COMMIT; 5: COMMIT;
D. 4: ROLLBACK; 5: ROLLBACK;

Solution

  1. Step 1: Understand transaction control

    To save changes only if all inserts succeed, you COMMIT after success and ROLLBACK if any fail.
  2. Step 2: Match commands to conditions

    Line 4 should be COMMIT to save changes; line 5 should be ROLLBACK to undo partial changes.
  3. Final Answer:

    4: COMMIT; 5: ROLLBACK; -> Option A
  4. Quick Check:

    COMMIT on success, ROLLBACK on failure [OK]
Hint: COMMIT saves all; ROLLBACK undoes all [OK]
Common Mistakes:
  • Swapping COMMIT and ROLLBACK roles
  • Committing even if inserts fail
  • Rolling back after successful inserts
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard