Skip to main content
The toolbar’s Export (Cmd+Shift+E) re-reads every table you tick with SELECT * FROM, so what is on screen has no bearing on the file: filters, sort, hidden columns, and the page you are on are all ignored, and table size does not matter. Export Results… on the grid’s right-click menu writes what the tab has loaded instead. Import is Cmd+Shift+I.

Export data

1

Open the export dialog

Open a table or run a query, then click Export in the toolbar (Cmd+Shift+E), or right-click the results grid and choose Export Results….
2

Choose a format and scope

Pick a format, tick tables in the tree, and set the options for that format.
3

Export

Click Export. The destination file appears only on success: a failed or cancelled export removes its partial file.
The last format and its options come back next time, but only after an export succeeds; cancelling discards the changes. Reset to Defaults restores the stock settings for the current format.
Export dialog

Export dialog

What ends up in the file

A whole-table export streams from the database at constant memory, with no row-count limit, and can be cancelled from the progress dialog. Export Results… writes what the tab holds in memory, which is the output of the query that filled it. The filter bar and a sorted header are part of that query, and so is column visibility on a table tab: hiding a column re-queries without it, keeping only the primary key and anything being sorted on. Two things are not part of it. A column value filter narrows the loaded rows in the grid afterwards, so it never reaches the file. And a truncated result with more rows behind it is re-run and streamed in full rather than written as far as it got.

Formats

Sanitizing prefixes a value starting with =, +, -, or @ with a single quote, so a spreadsheet treats it as text.

Clipboard paste (CSV/TSV)

Select a row in the data grid and press Cmd+V to paste tabular data straight in. Tabs parse as TSV, commas as CSV.

Import data

File > Import > Import Data… (Cmd+Shift+I) takes .sql and .sql.gz files, whose statements execute directly against the database, and .json, .jsonl, .ndjson, .csv, and .tsv files, which load into a table you pick or one TablePro creates.
1

Pick the file

Choose File > Import > Import Data… and select the file. The sheet that opens depends on what you picked.
2

Set the options

Encoding, transaction wrapping, and error handling for SQL; parsing and column mapping for CSV and JSON. TablePro remembers the options from your last successful import, and Reset to Defaults restores the stock ones.
3

Review and import

Check the preview, statement count, and file size, then click Import.
Import dialog

Import dialog with SQL file preview

Options

Skip and Continue collects up to 1,000 failures with their line numbers and messages, and the summary counts successes against failures behind a Copy Details button. A stop shows the line, the database’s own message, and the failing statement, with the dialog still open behind it, ready for a changed setting and another run.

Disabling foreign key checks

The checkbox runs a different statement per engine, and one of them needs a privilege. A server that rejects the statement stops the import with that error, so clear the checkbox and run it again. A dump TablePro exported needs no privilege: it adds foreign keys with ALTER TABLE … ADD CONSTRAINT after the data.

Import JSON

The sheet accepts an array of objects [{…}, {…}], newline-delimited JSON streamed a line at a time, and TablePro’s own export shape { "table": [ {…} ] }, so an export round-trips. Then choose a destination:
  • Existing table: map each JSON field to a column. Fields auto-match by name; switch one off to skip it. A column with no matching field keeps its default or NULL.
  • New table: name it and review the columns TablePro infers. Name, type, primary key, nullable flag, and default are all editable before the table is created.
Rows insert through parameterized statements, so a JSON value is never concatenated into SQL. Nested objects and arrays are stored as JSON text.

Import CSV

CSV and TSV open the same sheet as JSON, with parsing options in front of the mapping. The delimiter and encoding are detected from the file; change any option and the mapping re-reads it. Quoted fields keep embedded commas and newlines (RFC 4180), and a doubled quote ("") decodes to one.

Row imports

CSV and JSON insert in batches, and the on-error and transaction options behave as they do for SQL. They add Delete existing rows before import, which clears the target table inside the import transaction, so a failure in the default Stop and Rollback mode brings the rows back. A row where no field matches a mapped column writes nothing and is reported rather than counted.