The Life Starter
0 of 6 complete0%
Course Library · Lesson 4 of 6
Digital · Guided lesson

ROLLBACK a failed rule check

About 22 minutes · 4 reading + 18 practice and checks
Time includes reading, practice, and questions. Extra videos or further study are optional.
See this course’s project requirements

A local SQLite seat-transfer exercise with before/after totals, an all-or-nothing update, a deliberately rejected change and rollback evidence.

Keep your working files in your own notebook or software. Save a private description, checklist, and work link in My Proof.

What to include

  • A seat-transfer contract with total 10 preserved.
  • Two targeted updates with a declared completion boundary.
  • A committed all-or-nothing transfer record.
  • A 5, B 5 and no active transaction after rejection.
  • A parameterized update/lookup record with known-ID validation.
  • A checked seat-transfer transaction packet.

Review and revise

Use these criteria to check your work and choose what to improve.

  • The implementation or declared simulation follows the supplied contract and retains inspectable original inputs.
  • Normal, boundary and rejected cases are recorded with expected versus observed results.
  • The changed case has a correct explanation and does not rely on hidden state.
  • The project includes source, outputs, instructions and honest tool, privacy and verification limits.
Open the full course project
Want more background?
Before you begin

The idea in everyday life

After a success A 5, B 5, attempt transfer 8 from A to B. The operation raises ValueError, and both remain 5.

The idea

ROLLBACK preserves the before state of a failed transaction. Validation and evidence both matter: inspect actual quantities after rejection rather than assuming an exception prevented all changes.

Follow along

ROLLBACK a failed rule check — original worked practice

ROLLBACK preserves the before state of a failed transaction. Validation and evidence both matter: inspect actual quantities after rejection rather than assuming an exception prevented all changes.

After a success A 5, B 5, attempt transfer 8 from A to B. The operation raises ValueError, and both remain 5.

  1. 1. Step 1

    Capture the before state A 5, B 5.

    You should see: The valid previous result is retained.

    This keeps the rule and its observable result together.

  2. 2. Step 2

    Attempt the over-transfer.

    You should see: Available 5 is less than requested 8; ValueError occurs.

    This keeps the rule and its observable result together.

  3. 3. Step 3

    Read the ROLLBACK exception branch.

    You should see: The transaction is discarded.

    This keeps the rule and its observable result together.

  4. 4. Step 4

    Query both rows and transaction state after failure.

    You should see: A 5, B 5 and no active transaction after rejection.

    This keeps the rule and its observable result together.

Now change one thing

Attempt transfer 6 from A 5. Enter accept or reject.

Your work

What to finish

A 5, B 5 and no active transaction after rejection.

Common mistake

Watch for this

Catching an error without rolling back the already changed transaction.

How can I tell I understand it?

Explain and demonstrate the required distinction: ROLLBACK preserves the before state of a failed transaction. Validation and evidence both matter: inspect actual quantities after rejection rather than assuming an exception prevented all changes. Show a changed input and the expected result without weakening this contract.

Try 3 questions

Quick knowledge check

Answer all 3 questions. Get at least 2 right and the lesson completes automatically.

Not yet passed

You’ll get an explanation for each answer. Signed in? Your results save to your account.

1What must A contain after the failed 8-seat transfer?
2What does a ValueError alone prove about data?
3Which SQL statement undoes the failed transaction?
0 of 3 answeredApply the lesson to a short question, then review the explanation.
4
Finish this lesson

Pass the check. We’ll save the progress.

Answer all 3 questions above and get at least 2 right. You can review the explanations and try again.

Go to the knowledge check
Tools, templates, and lesson sources

Tools and templates

Tools open in a new tab so you can keep your place here.

Sources and further reading

Explore the references behind this lesson.

www.sqlite.org — lang_transaction.html
Source & access notes · checked 2026-10-01

Relevant documented module/API behavior inspected during expansion authoring; actual execution evidence is recorded separately. No grant eligibility is established.

Access: Official page retrieved with the web reader on 2026-10-01. Documentation reading does not certify execution in every native tool or browser.

Reuse: Original local practice files, fictional data, worked examples and questions. Concepts paraphrased and linked; source exercises are not copied.

docs.python.org — sqlite 3.html
Source & access notes · checked 2026-10-01

Relevant documented module/API behavior inspected during expansion authoring; actual execution evidence is recorded separately. No grant eligibility is established.

Access: Official page retrieved with the web reader on 2026-10-01. Documentation reading does not certify execution in every native tool or browser.

Reuse: Original local practice files, fictional data, worked examples and questions. Concepts paraphrased and linked; source exercises are not copied.

Report a problem with this lesson

Tell us what went wrong. Please leave out personal information and private project contents.

No sign-in needed.