Skip to content
In this guide

Guide · Doing

Edit data

Read this when a few rows need fixing by hand: a wrong status, a missing value, a duplicate to remove. Seqora stages every change in the grid and writes nothing until you have read the SQL and applied it.

Open the table

Edits happen in a table tab, or in a partition's tab, which edits the same way. A query result can't be edited, because its rows have no guaranteed path back to one row of one table, and its controls say "Query results are read-only." A view opens in the grid too, but reads "Views are read-only here. Change rows in the tables the view reads from."

  1. Press ⌘P on macOS or Ctrl+P on Windows.
  2. Type orders and press Enter. The commerce.orders tab opens.
  3. Unlock the connection if the grid says "Unlock the connection to change rows."

The data grid on the orders table with one cell edit staged, the pending-changes bar under it, and the review it opens.

Stage a change

  1. Double-click a cell in status. F2, Enter or right-click › Edit value do the same.
  2. Type refunded and press Enter.

Nothing is written. The row gets a dot, "Edited row", and a bar appears under the grid. The other kinds of change stage the same way:

Change How
Set a value to NULL Right-click the cell › Set to NULL, or the NULL button in the cell editor. Only on nullable columns.
Insert a row Add row in the toolbar. Required columns with no default are flagged.
Copy a row Right-click it › Duplicate row.
Delete rows Select them and press Delete, or right-click › Delete row.
Undo a delete Right-click the row › Keep row.

A deleted row stays on screen, marked, until you apply or keep it. Opening a NULL cell's editor and leaving it without typing stages nothing: the cell stays NULL, not empty.

Check what's pending

The bar reads 3 pending changes with a count per kind, and "Kept locally until you apply them". Click the count to list every change. Each line has a revert button, "Revert this change", and clicking the line scrolls the grid to it.

Discard asks "Discard all 3?" and offers Keep or Discard. Review opens the review, and so does ⌘S or Ctrl+S while the table tab has focus.

Review and apply

  1. Click Review. Review staged changes opens with "3 staged changes across 3 rows".
  2. Read Visual diff. Each row is tagged UPDATE, DELETE or INSERT, with the value before and after.
  3. Click SQL script to read the statements, under "Atomic transaction script for this change set:". Copy SQL copies them.
  4. Click Apply 3 changes.

The script shows values inline so you can read it. Seqora sends them as bound parameters, and every UPDATE and DELETE checks that the row still holds the values you loaded. The footer puts it in one line: "One transaction · rolls back if any row changed since it loaded".

Enter applies, unless the set contains a delete or the connection is production, as Connect defines it. Then it takes ⌘↩ or Ctrl+Enter, so a stray Enter can't delete rows.

A toast reports the outcome. "Applied 3 changes to orders" comes with the row count and the time. "Couldn’t apply to orders · rolled back" comes with the reason and a Review button that reopens your changes. "Outcome unknown for orders" comes with Refresh: the connection went away mid-commit, so reload before you try again.

Every applied statement is recorded in the sidebar's History view, one run per statement (History and SQL files).

What can't be edited

The grid disables the control and gives the reason in its tooltip.

Situation What Seqora says
The table has no primary key and no unique index "A primary key or complete unique index is required."
A row's unique key contains NULL "This row has no complete non-null unique identity."
You try to change the key itself "Row identity columns cannot be edited."
A generated column "Generated columns cannot be edited."
A binary column "Binary values cannot be edited in the grid."
An array column "Array values cannot be edited in the grid."
A JSON column "Edit JSON in the value inspector once the row is saved."
The connection is locked "Unlock the connection to change rows."
A view or materialized view "Views are read-only here."

Locking a connection with changes staged keeps them: the table reloads and the staged edits carry over, with Review disabled until you unlock again.

Without a key, Seqora can't write a WHERE that hits exactly one row, so it doesn't try. Add a primary key, or write the UPDATE yourself and run it in a transaction.

Edit a JSON cell

crm.customers.attributes is jsonb. JSON cells are edited in the value inspector, not in the cell.

  1. Double-click an attributes cell. The inspector opens beside the grid with the value in a JSON editor.
  2. Make the change. The status line reads Valid JSON, or the line and column of the first error.
  3. Click Format JSON, or press ⇧⌥F or Shift+Alt+F, to re-indent it. It re-lays out the text you typed, so 9007199254740993 and 1.50 stay as they are.
  4. Click Apply. This stages the change. Nothing is written yet.

In the review, a JSON change shows Original JSON and Proposed JSON side by side. If the two parse to the same value, it says "Only formatting or key order differs". On a jsonb column that change does nothing, because PostgreSQL keeps neither the formatting nor the key order.

Caveats

  • "Rolls back if any row changed since it loaded" means a whole apply fails if one row was changed by someone else after you loaded it. Refresh the table and stage the change again.
  • Staged changes belong to the tab and are kept locally until you apply them. Closing the tab opens the review first, so you apply or discard them before it goes.
  • Editing works the same way on PostgreSQL, MySQL, MariaDB and SQLite.
  • For more than a screenful of rows, write the UPDATE and run it in a transaction. The grid is for the handful you can check by eye.

Last checked against Seqora 0.3.2, PostgreSQL 17 on .

Found a bug, missing a feature, or just curious? Write to me. Every email lands in my own inbox, not a ticket queue.