📖 Scenario: You are managing a small library database. You want to understand how changes to the database are saved automatically or manually.
🎯 Goal: Learn how to control auto-commit behavior by creating a table, inserting data, and managing transactions.
📋 What You'll Learn
Create a table named books with columns id (integer) and title (text).
Set a variable to control auto-commit mode.
Insert a new book record using a transaction.
Commit the transaction explicitly if auto-commit is off.
💡 Why This Matters
🌍 Real World
Managing transactions is important in real-world databases to control when changes are saved or discarded.
💼 Career
Understanding auto-commit and transactions is essential for database administrators and developers to ensure data integrity.
Progress0 / 4 steps
1
Create the books table
Write a SQL statement to create a table called books with two columns: id as an integer primary key and title as text.
SQL
Hint
Use CREATE TABLE with column definitions inside parentheses.
2
Set auto-commit mode off
Write a SQL statement to turn off auto-commit mode by starting a transaction explicitly with BEGIN TRANSACTION;.
SQL
Hint
Use BEGIN TRANSACTION; to disable auto-commit temporarily.
3
Insert a book record
Write a SQL statement to insert a book with id 1 and title 'The Great Gatsby' into the books table.
SQL
Hint
Use INSERT INTO books (id, title) VALUES (1, 'The Great Gatsby');
4
Commit the transaction
Write a SQL statement to commit the current transaction using COMMIT; so the inserted book is saved.
SQL
Hint
Use COMMIT; to save changes when auto-commit is off.
Practice
(1/5)
1. What does auto-commit mode do in a SQL database?
easy
A. Prevents any changes from being saved to the database
B. Requires manual saving of changes after multiple statements
C. Automatically saves each SQL statement immediately after execution
D. Only saves changes when the database server restarts
Solution
Step 1: Understand auto-commit behavior
Auto-commit means every SQL statement is saved immediately without needing extra commands.
Step 2: Compare options with definition
Automatically saves each SQL statement immediately after execution matches this behavior exactly, others describe manual or no saving.
Final Answer:
Automatically saves each SQL statement immediately after execution -> Option C
Quick Check:
Auto-commit = immediate save [OK]
Hint: Auto-commit means no manual save needed after each statement [OK]
Common Mistakes:
Thinking auto-commit requires manual COMMIT
Confusing auto-commit with rollback behavior
Assuming changes save only on server restart
2. Which SQL command turns off auto-commit mode in most databases?
easy
A. COMMIT;
B. SAVEPOINT;
C. ROLLBACK;
D. SET AUTOCOMMIT = OFF;
Solution
Step 1: Identify command to disable auto-commit
Most databases use SET AUTOCOMMIT = OFF; to disable auto-commit mode.
Step 2: Understand other commands
COMMIT saves changes, ROLLBACK undoes changes, SAVEPOINT marks a point in a transaction; none disable auto-commit.
Final Answer:
SET AUTOCOMMIT = OFF; -> Option D
Quick Check:
Disable auto-commit = SET AUTOCOMMIT = OFF [OK]
Hint: SET AUTOCOMMIT = OFF disables auto-commit [OK]
Common Mistakes:
Using COMMIT or ROLLBACK to disable auto-commit
Confusing SAVEPOINT with auto-commit control
Omitting the SET keyword
3. Consider this sequence with auto-commit OFF: INSERT INTO users (id, name) VALUES (1, 'Alice'); ROLLBACK; SELECT * FROM users WHERE id = 1; What will the SELECT query return?
medium
A. A row with id=1 and name='Alice'
B. No rows
C. Syntax error
D. All rows in users table
Solution
Step 1: Analyze the INSERT and ROLLBACK with auto-commit OFF
With auto-commit OFF, the INSERT is not saved until COMMIT. ROLLBACK undoes the INSERT.
Step 2: Determine SELECT result after rollback
Since the INSERT was undone, the SELECT finds no row with id=1.
Final Answer:
No rows -> Option B
Quick Check:
ROLLBACK undoes changes, so SELECT returns no rows [OK]
Hint: ROLLBACK undoes uncommitted changes, so no new rows appear [OK]
Common Mistakes:
Assuming INSERT is saved without COMMIT
Thinking ROLLBACK only affects future queries
Expecting syntax error from ROLLBACK
4. You run these commands with auto-commit OFF: UPDATE products SET price = price * 0.9 WHERE category = 'Books'; COMMIT; ROLLBACK; What is the state of the prices after these commands?
medium
A. Prices are updated with 10% discount
B. Prices remain unchanged
C. Syntax error due to ROLLBACK after COMMIT
D. Partial update applied
Solution
Step 1: Understand effect of UPDATE and COMMIT
UPDATE changes prices, COMMIT saves these changes permanently.
Step 2: Analyze ROLLBACK after COMMIT
ROLLBACK after COMMIT has no effect because changes are already saved.
Final Answer:
Prices are updated with 10% discount -> Option A
Quick Check:
COMMIT saves changes; ROLLBACK after does nothing [OK]
Hint: COMMIT saves changes; ROLLBACK after commit does nothing [OK]
Common Mistakes:
Thinking ROLLBACK undoes committed changes
Assuming partial updates without commit
Confusing syntax error with command order
5. You want to insert multiple rows into a table but only save them if all inserts succeed. Which approach correctly uses auto-commit behavior?
hard
A. Turn auto-commit OFF, insert all rows, then COMMIT if no errors
B. Keep auto-commit ON and insert rows one by one without COMMIT
C. Use ROLLBACK before inserting rows to save them all
D. Insert rows and rely on auto-commit to undo on error automatically
Solution
Step 1: Understand transactional control with auto-commit OFF
Turning auto-commit OFF lets you group multiple inserts into one transaction.
Step 2: Use COMMIT to save only if all inserts succeed
After all inserts, COMMIT saves changes; if errors occur, ROLLBACK can undo all.
Final Answer:
Turn auto-commit OFF, insert all rows, then COMMIT if no errors -> Option A
Quick Check:
Group inserts with auto-commit OFF and COMMIT [OK]
Hint: Turn off auto-commit to group inserts, then COMMIT [OK]
Common Mistakes:
Relying on auto-commit ON for grouped inserts
Using ROLLBACK before inserts to save changes
Expecting auto-commit to undo on error automatically
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.