SQLITE_DONE
SQLiteSUCCESSCommonStep Resultofficial confidence

sqlite3_step() finished executing

Production Risk

None — success code.

What this means

SQLITE_DONE (101) is returned by sqlite3_step() to indicate that a statement has finished executing. For SELECT statements this means all rows have been returned; for INSERT/UPDATE/DELETE it means the statement completed successfully.

Why it happens
  1. 1Not an error — indicates successful completion.
How to reproduce

Returned by sqlite3_step() after the last row of a SELECT, or after a DML statement completes.

trigger — this will error
trigger — this will error
import sqlite3
conn = sqlite3.connect(':memory:')
conn.execute('CREATE TABLE t(x)')
conn.execute('INSERT INTO t VALUES(1)')
cur = conn.execute('SELECT x FROM t')
print(cur.fetchall())  # fetchall() drains to SQLITE_DONE internally

expected output

[(1,)]

Fix

Sources
Official documentation ↗

sqlite3.h — SQLITE_DONE = 101

sqlite3_step()

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All SQLite errors