A SQLite client for macOS · This page covers SQLiteEasy 1.4.
Draws every table in a database and the foreign keys between them, laid out the same way every time. Reach it with ⇧⌘M, the toolbar button, or by right-clicking a table in the sidebar. Three levels of detail; click a table to open it in a query tab; zoom, fit to the window, and export as PNG. A composite foreign key is drawn as one relationship rather than one per column, and a foreign key pointing at a table that no longer exists is flagged rather than quietly dropped.
Shows what differs between two SQLite files, or between a database and a schema snapshot saved earlier. Reach it with ⇧⌘D, the toolbar button, or the View menu.
CREATE statement is not a difference, and a changed CHECK
constraint is. Every change is named in words, and where a change is a loss the words say
so.Writes a database’s schema to a file so it can be compared against later, without needing the original database. The snapshot holds the schema only — no table contents.
Because SQLite cannot say how many rows a query returns without running it to the end. Rather than guess, SQLiteEasy shows what it has read and keeps reading as you scroll. Count All Rows gives you the total; it runs a separate query and is labelled as such.
SQLiteEasy only edits a result when it can identify exactly which stored row each displayed
row came from. Joins, aggregates and computed columns have no single row an edit could mean;
views need INSTEAD OF triggers, which it will not write for you; a
WITHOUT ROWID table needs its whole primary key in the query. The reason is always
shown under the grid.
No, and it says so. The filter bar searches the rows already read, which on a large table is a fraction of them, so it always shows the denominator. Use Filter in the Database to search the whole table — it composes the same filter as SQL and puts it in the editor for you to run.
Values over 1 MB are never loaded into the grid; that limit is what keeps memory bounded however far you scroll. Press ⌘I to open the inspector, which fetches the value on demand and can save any size to a file.
Every update carries the row’s original values in its WHERE clause. If the
row changed after you read it, the write matches nothing and is reported rather than replacing
someone else’s work. Refresh and try again.
No, deliberately. File › Check Database reports what SQLite finds and explains the options, but every automatic repair works by discarding what it could not read. That decision is yours to make, on a copy.
SQLiteEasy 1.4 lowered its minimum from macOS 15.6 to macOS 14.0. If it previously said your Mac was not supported, it will install now.
SQLiteEasy itself makes no network connections. See the privacy policy.