Cmd+Shift+P) shows the statements they will produce, and Cmd+S runs them.
The toolbar counts what is pending, modified cells stay highlighted, Cmd+Shift+P shows the statements the queue will produce, and Cmd+S runs them. The queue belongs to the tab, so switching tabs leaves it alone.

Data grid with pending changes highlighted
Editing a cell
Double-click a cell, or pressEnter on it. Enter commits the edit to the queue, Escape cancels. Setting a value back to what it was drops it from the queue again. Some types open an editor of their own:

Type-specific cell editor
NOW() or CURRENT_DATE on date columns.
Adding and deleting rows
- Add Row (
Cmd+Shift+N), the + button, or Edit > Add Row. The row appears at the bottom, columns with a default pre-filled asDEFAULT. Later edits to it fold into the INSERT rather than queueing as updates. - Duplicate Row (
Cmd+Shift+D) on the right-click menu copies a row and resets its primary key toDEFAULT, so the database assigns a new one. - Delete: select rows by their row numbers (
Shift-click for a range,Cmd-click for separate rows) and pressDelete. They stay visible with a strikethrough, and saving asks “Delete 5 rows?” before they go. - Paste on the right-click menu inserts copied rows as new rows.
- Fill Column on the header right-click menu writes one value into every loaded row, skipping primary key columns.
When the grid will not edit
A tab opened from the sidebar edits its table directly. A query tab edits only when the app can prove the rows came from exactly one table:
To change rows a join returned, open one of its tables from the sidebar and edit there. To edit through another schema, switch the session to that schema first.
Two more shapes look editable and refuse. A column renamed with
AS cannot be written back, though the rest of the row still can. A query that renames or omits the primary key blocks the save outright, because nothing is left to identify the row by.
Individual columns stay read-only where the server owns them: generated columns, which are computed on write and left out of every INSERT and UPDATE, SQL export included, and columns the driver marks immutable, such as MongoDB’s _id. A connection set to the Read-Only safe mode level edits nothing at all.
Saving
PressCmd+S, or click the toolbar checkmark. Values go out as bound parameters; DEFAULT and SQL functions such as NOW() are written into the statement as they stand.
A table without a primary key is matched on every original column value instead, with
IS NULL for the nulls.
On an engine with transactions, the statements run inside one, so a failure rolls the whole save back and the table is left as it was. Without them, the statements that ran before the failure stand. Either way a failed save reports Save Failed with the server’s message and keeps the queue intact, so correct the value and save again. A save that succeeds clears the queue, clears undo, and reloads the grid.
There is no discard button. Undo the edits, or take the Discard Unsaved Changes? prompt that appears when you refresh, sort, filter, change page, or close the tab with edits pending.
Previewing the SQL
Cmd+Shift+P, or the eye button in the toolbar, lists the statements with their parameter values inlined, so the preview reads as what will run. Copy All copies every statement.
Undo and redo
Cmd+Z and Cmd+Shift+Z. Focus decides what they act on: text in the SQL editor, queued changes in the grid. Deleting several rows undoes as one step. The stacks are per tab, and a save clears them.



