Skip to main content

COMMIT

COMMIT ends the current transaction and persists all pending changes.

Until commit, transaction writes are not finalized.

Core Concepts

flowchart LR
A[BEGIN transaction] --> B[Pending writes]
B --> C[COMMIT]
C --> D[Changes become durable]
StateMeaning
Before COMMITChanges are part of open transaction
After COMMITChanges are finalized

Code Examples

-- Setup table for commit demonstration.
CREATE TABLE tx_commit_demo (
id INTEGER PRIMARY KEY,
value TEXT NOT NULL
);
Expected output
Table created.
-- Open transaction, write data, and commit.
BEGIN;

INSERT INTO tx_commit_demo (value)
VALUES ('alpha'), ('beta');

COMMIT;
Expected output
Two rows committed successfully.
-- Read committed data.
SELECT id, value
FROM tx_commit_demo
ORDER BY id;
idvalue
1alpha
2beta

SQLite-Specific Nuances

SQLite Nuance

In SQLite, END TRANSACTION is accepted as a synonym for COMMIT.

Common Pitfalls / Best Practices

Pitfall

Assuming writes are permanent immediately after each statement when inside an explicit transaction.

Best Practice

Treat COMMIT as the single success checkpoint for the whole transaction block.

Quick Challenge

Insert gamma into tx_commit_demo within a transaction and finalize it.

View Solution
BEGIN;

INSERT INTO tx_commit_demo (value)
VALUES ('gamma');

COMMIT;
Expected output
Row is persisted after commit.