No processing of your file contents takes place on any server. You need no data-processing agreement with gottrix to handle confidential or business documents.
Hosted in GermanyGlobal Content Delivery
Origin servers at Hetzner in Germany, delivered worldwide through a content delivery network. Your file contents are never transmitted in the process - they never leave your device.
Loading a CSV table into a real database usually means: first create a matching table, then insert every row. This tool does both steps automatically as a ready-made SQL script you can run against SQLite, PostgreSQL or MySQL.
This tool reads your CSV entirely locally in the browser (papaparse) and infers a matching type per column from the actual values: INTEGER when every cell is a whole number, REAL for decimal numbers, otherwise TEXT. A CREATE TABLE statement with those columns is produced, followed by one INSERT statement per data row - identifiers are double-quoted (ANSI standard, runs directly in SQLite and PostgreSQL), text values correctly escaped with an apostrophe.
Nothing is uploaded - the conversion even works offline. An honest note: this produces a plain, dialect-neutral data dump without a primary key, indexes or foreign-key relationships - for real schema design you add those yourself afterwards.
Specifications
Specifications
Input formats
CSV
Auto-conversion
ZIP, XLSX, SQLite, DBF, VCF, ICS, DXF, GeoJSON
Output format
SQL
Batch processing
No
Processing
Locally in your browser (JavaScript)
File upload
None
In 3 steps
Drop or pick your CSV file.
Choose the header row (optional).
Download the SQL file.
Limitations: Produces a CREATE TABLE statement plus one INSERT statement per row - no primary key, no indexes, no foreign keys. Column types (INTEGER/REAL/TEXT) are inferred from the values, not guaranteed perfect with mixed cell content. Identifiers are written ANSI-compliant in double quotes; MySQL needs its ANSI_QUOTES mode for that. Very large files need memory.
FAQ
Is my file uploaded?
No. The SQL script is built entirely locally in the browser.
Which database is the SQL meant for?
It is kept dialect-neutral and runs directly in SQLite and PostgreSQL; MySQL needs its ANSI_QUOTES mode because of the double-quoted identifiers.
How are column types determined?
From the actual values: INTEGER for whole numbers, REAL for decimal numbers, otherwise TEXT.
What happens with empty cells?
They are written as SQL NULL.
Is a primary key created?
No, the script is a plain data dump without schema design - you add a primary key or indexes yourself.