Database Seed Generator
Generate realistic test INSERT statements, JSON, or CSV from SQL table definitions. All processing runs in your browser.
About This Tool
The Database Seed Generator is a free browser-based tool that creates realistic test data from SQL CREATE TABLE definitions. Instead of manually writing INSERT statements or searching for dummy data generators, paste your table schema and instantly receive seed data tailored to your column names and types.
The generator uses intelligent heuristics to produce contextually appropriate data. Columns named email get realistic email addresses, first_name columns receive plausible given names, price fields contain decimal values, and created_at timestamps span a realistic date range. It recognizes dozens of common naming conventions across VARCHAR, INTEGER, BOOLEAN, TIMESTAMP, DECIMAL, UUID, JSON, and ENUM types. If a column name does not match any heuristic, the type-based fallback ensures sensible defaults.
You can choose from three output formats. SQL INSERT statements are ready to paste directly into your database client or migration script. JSON Array output is ideal for API mocking, test fixtures, or seeding through an ORM. CSV export works well for spreadsheet import or data pipeline testing. Three SQL dialects are supported — PostgreSQL, MySQL, and SQLite — each with correct quoting and boolean conventions.
The row count slider lets you generate anywhere from 1 to 1,000 rows per table. A deterministic seed ensures reproducible output: the same schema and seed always produce identical data, which is invaluable for consistent test environments. Click Regenerate to shuffle the seed and get a fresh data set.
All processing happens entirely in your browser. Your SQL schemas and generated data never leave your machine — there are no server requests, no logging, and no third-party services. This makes the tool safe to use with production table structures and sensitive column definitions.
How to Use
- Paste one or more SQL
CREATE TABLEstatements into the SQL Table Definition panel on the left. - Adjust the Rows slider or click a preset (10, 50, 100, 500, 1000) to set the number of rows per table.
- Select your Dialect (PostgreSQL, MySQL, or SQLite) to ensure correct quoting and boolean formatting.
- Choose an output Format: SQL INSERT, JSON Array, or CSV.
- The generated seed data appears instantly in the right panel as you type or change settings.
- Click Regenerate or press Ctrl+Enter to produce a new random data set with a different seed.
- Click Copy or press Ctrl+Shift+C to copy the output. Use Download to save as a file.
Popular Database Seed Generator Examples
FAQ
What column types are supported?
The generator supports all common SQL types including VARCHAR, TEXT, INTEGER, BIGINT, SERIAL, BOOLEAN, DECIMAL, FLOAT, DOUBLE, TIMESTAMP, DATETIME, DATE, TIME, UUID, JSON, JSONB, ENUM, and more. Each type produces appropriately formatted data. ENUM columns randomly select from the defined values.
How does the tool choose realistic data?
The generator uses column name heuristics first. Columns named email, first_name, last_name, phone, city, price, status, url, and many more patterns trigger context-specific fake data. If the column name does not match any known pattern, the tool falls back to type-based generation (e.g., random integers for INT, random dates for TIMESTAMP).
Can I generate data for multiple tables at once?
Yes. Paste multiple CREATE TABLE statements separated by semicolons. The tool generates the specified number of rows for each table. In SQL format, INSERT statements are grouped by table. In JSON format with multiple tables, the output is an object keyed by table name.
How do nullable columns work?
Columns without NOT NULL have approximately a 10% chance of receiving a NULL value in each row. This simulates real-world data patterns where optional fields are sometimes empty. Auto-increment and primary key columns are never NULL.
Is the generated data reproducible?
Yes. The tool uses a deterministic pseudo-random number generator with a fixed seed. The same schema, row count, and seed always produce identical output. Click Regenerate to change the seed and get different data. This is useful for creating consistent test fixtures.
Is my data safe?
Yes. All parsing and data generation runs entirely in your browser using JavaScript. No data is sent to any server. You can verify this by checking the Network tab in your browser's developer tools while using the tool.
What is the maximum number of rows I can generate?
The slider supports up to 1,000 rows per table. For very large schemas with many columns, generating 1,000 rows may take a moment but runs efficiently in the browser. The output can be downloaded as a file if it is too large to copy from the text area.
Related Tools
Mock Data Generator
Generate fake names, emails, addresses, and more. Export as JSON, CSV, SQL, or TypeScript.
JSON to SQL INSERT
Convert JSON arrays to SQL INSERT statements. Supports bulk inserts, table name customization, and multiple SQL dialects.
SQL Formatter
Format, beautify, and minify SQL queries with dialect support for MySQL, PostgreSQL, and SQLite.
Connection String Builder
Build database connection strings for PostgreSQL, MySQL, MongoDB, Redis, SQLite, and MSSQL.
SQL to Prisma Schema
Convert SQL CREATE TABLE statements to Prisma schema models. Supports common SQL types and relations.
JSON to Bulk INSERT
Convert JSON arrays to optimized bulk SQL INSERT statements with batch sizing, dialect support, and column mapping.