Skip to main content

Data Grid

Query results and table contents render in a spreadsheet-style grid. Edit cells inline, sort columns, copy in multiple formats, and paginate through large result sets.
Data Grid

Viewing Data

Click a table in the sidebar or run a SELECT query to load data into the grid. The header shows row count, execution time, and affected rows for UPDATE/DELETE queries.

Column Features

Resizing Columns

  • Drag column borders to resize
  • Double-click a border to auto-fit column width
  • Column widths are remembered per table

Sorting Data

Click a column header to sort:
  • First click: Sort ascending (A-Z, 0-9)
  • Second click: Sort descending (Z-A, 9-0)
  • Third click: Remove sort
Sorting is done locally on the loaded data. For server-side sorting, use ORDER BY in your query.
Column header with sort indicator

Data Editing

Inline Editing

To edit a cell:
  1. Double-click the cell
  2. Enter the new value
  3. Press Enter to confirm or Escape to cancel
Cell editing

Date/Time Picker

Date, datetime, timestamp, and time columns open a native date picker instead of a text field. The picker adapts to the column type (DATE: year/month/day, DATETIME/TIMESTAMP: adds hour/minute/second, TIME: hour/minute/second only). Outputs in YYYY-MM-DD HH:MM:SS format. If the existing value cannot be parsed, it defaults to now.
Date picker for editing date columns

Foreign Key Lookup

Foreign key columns open a searchable dropdown with values from the referenced table (e.g., 1 - John Doe). Type to filter, double-click or press Enter to commit. Fetches up to 1,000 values; use the search field to narrow larger sets.
Foreign key lookup with search

Boolean Cell Editor

BOOLEAN, BIT, and TINYINT(1) cells open a checkbox popover. Click to toggle, Enter to commit, Escape to cancel. Nullable columns support a third indeterminate state (NULL).
DatabaseColumn TypesValues
MySQL/MariaDBTINYINT(1), BIT(1)0 / 1
PostgreSQLBOOLEANTRUE / FALSE
SQLiteINTEGER0 / 1
Boolean cell checkbox editor

ENUM Column Editor

ENUM cells open a searchable dropdown. Click a value to select and commit. Nullable columns show a NULL option at the top.
DatabaseENUM Source
MySQL/MariaDBNative ENUM type
PostgreSQLUser-defined enum types (pg_enum)
SQLiteCHECK(column IN (...)) constraints
ENUM value selector

SET Column Editor

SET cells (MySQL/MariaDB) open a checkbox popover. Check/uncheck values, then press Enter to commit or Escape to cancel.
If ENUM/SET metadata is unavailable (e.g., from a complex query), the cell falls back to inline text editing.
SET value multi-select editor

JSON Editor

JSON/JSONB cells open a dedicated editor popover with real-time validation. Invalid JSON triggers a confirmation before saving. Values are minified on save.
JSON editor with validation

Hex Editor (BLOB/Binary)

BLOB, BINARY, and VARBINARY cells open a hex editor popover. Edit as space-separated hex bytes (e.g., 48 65 6C 6C 6F). Live validation flags invalid input in red. The Cell Inspector sidebar also provides hex editing.
BLOBs larger than 10 KB are read-only. Use an external hex editor for large binary data.

Multi-Row Editing

Select multiple rows with Cmd+click (non-contiguous) or Shift+click (range) on row numbers. Press Delete to remove selected rows.
Multiple rows selected for editing

Saving Changes

Changes are queued, not applied immediately. Manage pending changes with:
  • Preview SQL: Click the Preview SQL button (eye icon) or press Cmd+Shift+P to review pending SQL statements before committing
  • Commit: Click the Commit button (or press Cmd+S) to apply all pending changes
  • Discard: Click the Discard button to revert all pending changes
  • Undo/Redo: Press Cmd+Z to undo or Cmd+Shift+Z to redo individual edits before committing
See Change Tracking for full details on how changes are queued and applied.
Editing is available for simple SELECT * FROM table queries. Complex queries with joins or aggregations are read-only.

Adding and Deleting Rows

Click the + button to add a new row, or select row(s) and press Delete to remove them. Changes are queued until you click Commit.

Change Indicators

Pending changes get visual feedback:
  • Modified cells are highlighted with a distinct background color
  • New rows display an insertion indicator
  • Deleted rows display a deletion indicator
  • The toolbar shows the count of pending changes
Review all modifications before committing them to the database. See Change Tracking for details.

Cell Inspector

The Cell Inspector is a right sidebar panel showing detailed information about the selected row or current table. Toggle with Cmd+Shift+B or via View > Toggle Cell Inspector.
Cell Inspector

Row Details Mode

When a row is selected, the inspector shows all column values with full (untruncated) content. Search columns by name. TEXT/VARCHAR columns get a multi-line editor. Edit values here; changes are queued like inline edits.

Table Info Mode

When no row is selected, the inspector shows table metadata: name, row count, storage size, creation date, engine, charset, and collation.
Read-Only Safe Mode connections and complex query results are not editable. See Safe Mode.

Keyboard Navigation

Use arrow keys to move between cells. Press Enter to edit, Escape to cancel. Tab / Shift+Tab move to the next/previous cell. Cmd+Home / Cmd+End jump to first/last row.

Selecting & Copying

Click a cell to select it. Drag to select a range, or Shift+click to select a range. Click row numbers to select entire rows, or Cmd+click for multiple non-contiguous rows. Select cells and press Cmd+C for TSV, Cmd+Shift+C for CSV, or Cmd+Option+J for JSON.
Copy options in context menu

Pagination

Large result sets are paginated. Configure page size in Settings > Data Grid (Small: 100, Medium: 500, Large: 1,000, Custom: 10–100,000). Smaller pages load faster.
Pagination controls with page navigation

NULL Values and Display

NULL values show as styled “NULL” text (customizable in Settings > Data Grid). Configure date format, row height, and alternate row colors in the same settings panel.

MongoDB Collections

Schema and Display

MongoDB has no fixed schema. TablePro infers columns by sampling up to 500 documents. Missing fields show as NULL. The _id column is read-only; delete and re-insert to change it. BSON types display as: ObjectId("..."), ISO 8601 dates, BinData(subtype, "base64..."), decimal strings, DBRef("collection", id).

MQL Statement Preview

Changes preview as MongoDB shell commands:
  • Inserts: db.collection.insertMany([...])
  • Updates: db.collection.updateOne({filter}, {$set: {...}})
  • Deletes: db.collection.deleteMany({_id: {$in: [...]}})