DBeaver Data Transfer: Moving Exactly What You See Without Writing Scripts
DBeaver's Data Transfer wizard lets you export exactly the rows you validated in a query result to another database or file with explicit column mapping, and know when to prefer native bulk tools instead.
07 Mar 2026, 15:20 UTC

You have already validated the rows in DBeaver. The query returned the right customers, the filters are correct, and the result grid looks good. Now you need those exact rows in another database or as a CSV for a teammate. Writing a script, staging a file manually, and re-checking counts is friction. DBeaver's Data Transfer wizard is built for this ad-hoc case: export what you see from a table, schema, or query result to another database table, CSV, JSON, Excel, XML, HTML or SQL INSERT statements, with explicit column mapping you can review before it runs.
Why the wizard fits ad-hoc moves
Data Transfer is launched from the context menu in the Database Navigator or from a query result grid: right-click a table, schema, or results grid and choose Export Data or Import Data. DBeaver abstracts source and target through JDBC drivers, so a copy from PostgreSQL to MySQL can happen without an intermediate file if you want it to.
The useful property is fidelity to the UI. Exporting directly from the results grid means the export matches the filters, sorting and columns you validated on screen, not the whole underlying table. For file exports you set encoding, delimiter, quoting and NULL representation explicitly, which prevents the common CSV interop bugs when the consumer is Excel or another database.
Mapping and control you can inspect
The wizard is not a blind dump. On the mapping step you can:
- Rename target columns and skip source columns you do not need.
- Apply per-column value transforms with expressions.
- Choose create-new-table versus append-to-existing, and enable truncate-before-load for repeatable refreshes.
Cross-database copies use heuristic type mapping that you can review per column before execution. This matters for types that do not translate cleanly, such as timestamps with time zones, decimals, and booleans. Verify the generated target DDL after the copy to confirm column types and nullability match expectations.
Large result sets stream in configurable fetch-size chunks rather than loading everything into memory. The wizard can be saved as a Database Task and re-run later from the Database Tasks view. Scheduling is available, with UI differences between Community and commercial editions.
Worked example: filtered query to CSV and to another database
Assume you need a filtered slice of orders for analysis and for loading into a reporting schema.
- Run the filter in DBeaver's SQL Editor and open the results grid. Required permission: SELECT on the source table.
- Right-click the results grid header and choose Export Data. Choose CSV as first target to preserve an auditable file.
- In the format options set encoding to UTF-8, delimiter to comma, quote character to double quote, and NULL representation to empty. Save the file to a path you control.
- Run the wizard again with a second target: another database connection. Required permission on target: CREATE TABLE and INSERT, or INSERT only if appending to an existing table.
- In the mapping step review the automatic type mapping. Adjust any timestamp or numeric columns manually. Choose create-new-table for a one-off, or append-to-existing with truncate-before-load if you intend to refresh.
After the run, do not trust the green check alone. Compare row counts between source result set and target, and inspect a checksum of a key column if you need confidence. Inspect the target table DDL to confirm types and nullability. Re-run the saved task twice with append versus truncate to confirm the idempotency behavior you intend.
Trade-offs and limitations
Data Transfer is convenient, not a replacement for native bulk tools. For very large transfers it is slower and less tunable than pg_dump, PostgreSQL COPY, MySQL LOAD DATA, or database-specific loaders. Running a large transfer against production can hold read load for a long time; prefer an off-peak window or a replica as the source.
Automatic type mapping is heuristic. Verify types like timestamps with time zones, decimals and booleans on the target side before trusting a migration. Feature availability and menu labels vary between Community and Pro editions and across versions, so confirm the options you need exist in your install via Help > About.
Saved tasks store connection references. Check how your workspace stores secrets before sharing task configurations.
Close with a check
Use Data Transfer when you need a quick, auditable move of exactly what you validated in the UI, with explicit mapping and a saved task for repeatability. Use native bulk tools when you need maximum throughput, fine-grained tuning, or production-scale loads. The practical test is the same either way: same row count, matching key checksums, and target DDL that reflects your intent.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.