Bird
Raised Fist0
MySQLquery~5 mins

Savepoints in MySQL - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a savepoint in MySQL?
A savepoint is a marker within a transaction that allows you to roll back part of the transaction instead of the whole thing.
Click to reveal answer
beginner
How do you create a savepoint in MySQL?
Use the SQL command SAVEPOINT savepoint_name; to create a savepoint inside a transaction.
Click to reveal answer
intermediate
What happens when you roll back to a savepoint?
Rolling back to a savepoint undoes all changes made after that savepoint but keeps the transaction active.
Click to reveal answer
intermediate
How do you release a savepoint?
Use RELEASE SAVEPOINT savepoint_name; to remove a savepoint. After releasing, you cannot roll back to it.
Click to reveal answer
beginner
Can you use savepoints outside a transaction?
No, savepoints only work inside transactions. You must start a transaction before creating savepoints.
Click to reveal answer
Which command creates a savepoint named 'sp1' in MySQL?
ASTART SAVEPOINT sp1;
BCREATE SAVEPOINT sp1;
CSAVEPOINT sp1;
DSET SAVEPOINT sp1;
What does ROLLBACK TO SAVEPOINT sp1; do?
ARolls back changes made after savepoint 'sp1'
BCommits the transaction up to 'sp1'
CRolls back the entire transaction
DDeletes the savepoint 'sp1'
What happens if you try to create a savepoint outside a transaction?
ASavepoint is created successfully
BAn error occurs
CTransaction starts automatically
DSavepoint is ignored
Which command removes a savepoint named 'sp1'?
ARELEASE SAVEPOINT sp1;
BDELETE SAVEPOINT sp1;
CDROP SAVEPOINT sp1;
DREMOVE SAVEPOINT sp1;
After rolling back to a savepoint, what is the state of the transaction?
ATransaction is committed
BTransaction is paused
CTransaction is aborted
DTransaction remains active
Explain what a savepoint is and how it helps in managing transactions.
Think about how you can undo part of your work without losing everything.
You got /3 concepts.
    Describe the steps and commands to create, rollback to, and release a savepoint in MySQL.
    Remember the order: create, rollback, release.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a SAVEPOINT in MySQL transactions?
      easy
      A. To start a new transaction automatically
      B. To permanently save changes to the database
      C. To mark a point in a transaction to which you can roll back later
      D. To commit all changes immediately

      Solution

      1. Step 1: Understand what a savepoint does

        A savepoint marks a specific point inside a transaction to which you can roll back without affecting earlier changes.
      2. Step 2: Differentiate from commit and start

        Unlike commit, which saves all changes permanently, savepoints allow partial rollback. It does not start a new transaction.
      3. Final Answer:

        To mark a point in a transaction to which you can roll back later -> Option C
      4. Quick Check:

        Savepoint = partial rollback marker [OK]
      Hint: Savepoints let you undo part of a transaction, not all [OK]
      Common Mistakes:
      • Confusing savepoint with commit
      • Thinking savepoint starts a new transaction
      • Assuming savepoint permanently saves changes
      2. Which of the following is the correct syntax to create a savepoint named sp1 in MySQL?
      easy
      A. SAVEPOINT sp1;
      B. CREATE SAVEPOINT sp1;
      C. SET SAVEPOINT sp1;
      D. BEGIN SAVEPOINT sp1;

      Solution

      1. Step 1: Recall MySQL savepoint syntax

        The correct syntax to create a savepoint is simply SAVEPOINT savepoint_name;.
      2. Step 2: Check other options for correctness

        Options B, C, and D use incorrect keywords like CREATE, SET, or BEGIN which are not used for savepoints.
      3. Final Answer:

        SAVEPOINT sp1; -> Option A
      4. Quick Check:

        Savepoint syntax = SAVEPOINT name; [OK]
      Hint: Use just SAVEPOINT plus name to create one [OK]
      Common Mistakes:
      • Adding CREATE or SET before SAVEPOINT
      • Using BEGIN with SAVEPOINT
      • Missing semicolon at end
      3. Consider this transaction sequence:
      START TRANSACTION;
      INSERT INTO accounts VALUES (1, 100);
      SAVEPOINT sp1;
      UPDATE accounts SET balance = 200 WHERE id = 1;
      ROLLBACK TO SAVEPOINT sp1;
      COMMIT;

      What will be the final balance for account with id=1?
      medium
      A. 100
      B. 200
      C. 0
      D. NULL

      Solution

      1. Step 1: Follow the transaction steps

        First, a row with balance 100 is inserted. Then a savepoint sp1 is created. Next, balance is updated to 200.
      2. Step 2: Rollback to savepoint sp1

        Rolling back to sp1 undoes the update but keeps the insert. So balance returns to 100.
      3. Final Answer:

        100 -> Option A
      4. Quick Check:

        Rollback to savepoint undoes changes after it [OK]
      Hint: Rollback to savepoint undoes later changes only [OK]
      Common Mistakes:
      • Thinking rollback undoes entire transaction
      • Assuming balance stays 200 after rollback
      • Confusing commit effects
      4. What is wrong with this MySQL transaction code?
      START TRANSACTION;
      SAVEPOINT sp1;
      ROLLBACK TO sp2;
      COMMIT;
      medium
      A. You must commit before creating a savepoint
      B. ROLLBACK TO requires a semicolon after savepoint name
      C. SAVEPOINT must come after ROLLBACK
      D. You cannot rollback to a savepoint that was not created

      Solution

      1. Step 1: Check savepoint creation

        The code creates savepoint sp1 but tries to rollback to sp2 which does not exist.
      2. Step 2: Understand rollback to savepoint rules

        You can only rollback to savepoints that were previously created in the current transaction.
      3. Final Answer:

        You cannot rollback to a savepoint that was not created -> Option D
      4. Quick Check:

        Rollback to unknown savepoint = error [OK]
      Hint: Rollback only to existing savepoints in current transaction [OK]
      Common Mistakes:
      • Trying to rollback to a non-existent savepoint
      • Misordering savepoint and rollback commands
      • Assuming semicolon placement causes error
      5. You want to update multiple rows in a transaction but be able to undo only the last two updates if needed. Which sequence correctly uses savepoints to achieve this?
      hard
      A. START TRANSACTION; SAVEPOINT sp1; UPDATE row1; SAVEPOINT sp2; UPDATE row2; UPDATE row3; ROLLBACK TO sp2; COMMIT;
      B. START TRANSACTION; UPDATE row1; SAVEPOINT sp1; UPDATE row2; SAVEPOINT sp2; UPDATE row3; ROLLBACK TO sp1; COMMIT;
      C. START TRANSACTION; UPDATE row1; UPDATE row2; SAVEPOINT sp1; UPDATE row3; ROLLBACK TO sp1; COMMIT;
      D. START TRANSACTION; UPDATE row1; SAVEPOINT sp1; UPDATE row2; SAVEPOINT sp2; UPDATE row3; ROLLBACK TO sp2; COMMIT;

      Solution

      1. Step 1: Understand the goal

        You want to undo only the last two updates, meaning updates to row2 and row3, but keep update to row1.
      2. Step 2: Analyze each option

        START TRANSACTION; UPDATE row1; SAVEPOINT sp1; UPDATE row2; SAVEPOINT sp2; UPDATE row3; ROLLBACK TO sp2; COMMIT;: START TRANSACTION; UPDATE row1; SAVEPOINT sp1; UPDATE row2; SAVEPOINT sp2; UPDATE row3; ROLLBACK TO sp2; COMMIT; sets sp1 after row1 update, sp2 after row2 update, then updates row3. Rolling back to sp2 undoes only the update to row3, keeping updates to row1 and row2.
      3. Step 3: Re-examine options carefully

        START TRANSACTION; UPDATE row1; SAVEPOINT sp1; UPDATE row2; SAVEPOINT sp2; UPDATE row3; ROLLBACK TO sp1; COMMIT; rolls back to sp1, undoing updates to row2 and row3, which matches the goal of undoing last two updates.
      4. Final Answer:

        START TRANSACTION; UPDATE row1; SAVEPOINT sp1; UPDATE row2; SAVEPOINT sp2; UPDATE row3; ROLLBACK TO sp1; COMMIT; -> Option B
      5. Quick Check:

        Rollback to earlier savepoint undoes all later changes [OK]
      Hint: Rollback to savepoint before last two updates to undo them [OK]
      Common Mistakes:
      • Rolling back to wrong savepoint
      • Not placing savepoints after each update
      • Confusing which updates get undone
      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