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."
- Press
⌘Pon macOS orCtrl+Pon Windows. - Type
ordersand pressEnter. Thecommerce.orderstab opens. - 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
- Double-click a cell in
status.F2,Enteror right-click ›Edit valuedo the same. - Type
refundedand pressEnter.
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
- Click
Review.Review staged changesopens with "3 staged changes across 3 rows". - Read
Visual diff. Each row is taggedUPDATE,DELETEorINSERT, with the value before and after. - Click
SQL scriptto read the statements, under "Atomic transaction script for this change set:".Copy SQLcopies them. - 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.
- Double-click an
attributescell. The inspector opens beside the grid with the value in a JSON editor. - Make the change. The status line reads
Valid JSON, or the line and column of the first error. - Click
Format JSON, or press⇧⌥ForShift+Alt+F, to re-indent it. It re-lays out the text you typed, so9007199254740993and1.50stay as they are. - 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
UPDATEand run it in a transaction. The grid is for the handful you can check by eye.