HomeFeaturesPluginsDocsDownload

Editing data

Edit results directly in the grid — then review the exact SQL before it touches your database.

Making edits

In an editable grid you can change a cell, add a row or delete a row. Modified cells are highlighted and the pending changes are counted, so nothing is written until you choose to save.

Editors that match the column

The editor a cell opens depends on its type. A boolean column edits as a checkbox and a date column as a date picker, rather than typing true or a date as text and hoping it parses. Every other type keeps the text editor.

On a column that accepts NULL the checkbox is three-state, so clearing it means NULL rather than false — on a nullable column those are different rows. A date cell clears back to NULL the same way. Picking a date keeps the cell's existing time of day, so editing the date half of a timestamp no longer drops the time.

NULL and the empty string

The grid keeps the two apart, and lets you mean either one on purpose. NULL is drawn as a faded NULL marker rather than an empty cell, so you can tell it from an empty string without clicking into it.

  • Tabbing through a NULL cell leaves the NULL alone. Opening the editor and moving on without typing used to write an empty string back — on a text column that is a real change, saved as ''.
  • Set NULL and Set empty both sit in a cell's right-click menu, and apply to the whole selection rather than one cell.
  • On an added row, a column you never touched is left out of the INSERT so the database applies its DEFAULT or auto-increment. A column you deliberately set to NULL is written as an explicit NULL — otherwise a column with a DEFAULT would quietly get the default instead of the NULL you asked for.

The save flow

Saving builds parameterised INSERT, UPDATE and DELETE statements for exactly the rows you changed — an UPDATE only sets the columns that actually changed, and an INSERT omits unset columns so the database applies its own defaults and auto-increments. By default the generated SQL is shown for review first; approving runs it all in a single transaction, and the grid re-reads afterwards to pick up database-assigned values. Save grid edits with Ctrl + Shift + S.

Prefer to skip the preview? Turn off Show a review dialog before saving changes under Settings ▸ Query — it's on by default.

When is a grid editable?

Editing is enabled only when every column in the result maps back to a single table and at least one primary-key column is present (the key is how each row is matched for UPDATE and DELETE). Otherwise the grid stays read-only and shows the reason, for example:

  • “Result has no primary-key column to identify rows.”
  • “Result spans multiple tables.”
  • “Result has no updatable table columns.”

A connection you've marked read-only is never editable, regardless of keys.

NoSQL engines

Document and key-value engines commit through a structured change set rather than generated SQL. Scope differs per engine: Redis and DragonflyDB edit hash fields in the grid (other types are changed via console commands); Elasticsearch writes back via _bulk, which is not transactional, so partial failures are reported per row.