Every edit becomes SQL you read before it runs.
A native macOS client for PostgreSQL, MySQL and MariaDB — and for the SQLite file on your desktop, which you open by dropping it on the window. Built for the developer who is in dev in the morning, staging after lunch, and production over SSH at five.
You already have a database client. These are the moments that decide whether you keep it.
The preview is the easy half. The guard is the row count.
Tinker builds each statement from the primary key and the values the row held when it loaded. It runs them in one transaction, counts the rows each one touched, and rolls the whole thing back unless that count is exactly one.
exactly one row, or ROLLBACKWHERE holds the values the row had at loadno primary key, no editing — and the status bar says why
How a commit works UPDATE orders SET status = $1 WHERE id = $2;DELETE FROM orders WHERE id = $1;INSERT INTO orders (customer_id, total)VALUES ($1, $2) RETURNING *;
Expected 1 row, got N — data may have changed since load
What you get instead of a corrupted table. Nothing was written, and your edits are still in the buffer.