SQL Mock Data Generator
Generate realistic, reproducible mock data from a table schema you define column by column. Pick from 25+ faker-style field types, choose a SQL dialect (PostgreSQL, MySQL, SQLite, SQL Server), and export to INSERT statements, CSV, JSON, NDJSON, or a TypeScript fixture. A named seed makes every run deterministic — the same seed always yields the same rows, so your fixtures stay stable and shareable.
About this ToolHow it works, benefits & use casesTap to collapse
Generate realistic, reproducible mock data from a table schema you define column by column, then export it as ready-to-run SQL or as a fixture for your code. Add columns, name them, and pick from more than 25 faker-style field types - auto-increment IDs, UUIDs, foreign keys, first and last names, full names, emails, usernames, phone numbers, integers and decimals with custom min/max, money, booleans, dates and datetimes, custom enums, words, sentences, paragraphs, URLs, IPv4 addresses, colors, cities, countries, companies, job titles, and JSON objects. Choose your SQL dialect - PostgreSQL, MySQL, SQLite, or SQL Server - and the output adapts: correct boolean literals, identifier quoting, column types, and auto-increment syntax for each. Toggle a CREATE TABLE header, switch between one multi-row INSERT and one statement per row, or export to CSV, JSON, NDJSON, or a typed TypeScript const instead. The whole thing is driven by a named seed, so the same seed always produces exactly the same rows - perfect for committing fixtures, sharing a URL, or writing tests that assert on specific values. A live table preview shows the first rows as you tune the schema, and everything runs in your browser.
How to Use
- 1Start from a template (Users, Products, Orders) or build a schema from scratch.
- 2Add columns, name each one, and choose a field type; set min/max for numbers or values for enums.
- 3Set the table name, row count, and a seed (the same seed always regenerates the same rows).
- 4Pick a SQL dialect and an output format (SQL INSERT, CSV, JSON, NDJSON, or TypeScript).
- 5Optionally include a CREATE TABLE header, then copy, download, or share the output.
Key Benefits
- Seeded and reproducible: the same seed always yields the same rows
- 25+ faker-style field types covering people, numbers, dates, text, web, and business data
- Dialect-aware output for PostgreSQL, MySQL, SQLite, and SQL Server
- Export to SQL INSERT, CSV, JSON, NDJSON, or a typed TypeScript fixture
- Optional CREATE TABLE header and multi-row INSERT batching
- Live table preview and a fully shareable URL
- Runs entirely in your browser - no schema or data leaves your machine
Common Use Cases
- Seeding a development or staging database with believable rows
- Creating stable fixtures for unit and integration tests
- Filling a demo or prototype with realistic-looking records
- Producing sample CSV or JSON datasets for tutorials and docs
- Generating a shareable, reproducible dataset to attach to a bug report
| id | first_name | last_name | username | is_active | created_at | |
|---|---|---|---|---|---|---|
| 1 | Jane | Smith | [email protected] | john_taylor563 | false | 2025-06-09 23:42:21 |
| 2 | David | Moore | [email protected] | isabella_hernandez147 | true | 2021-03-02 16:55:12 |
| 3 | Richard | Anderson | [email protected] | joseph_miller726 | true | 2022-01-06 09:24:40 |
| 4 | Robert | Smith | [email protected] | jane_rodriguez454 | false | 2023-03-08 11:41:58 |
| 5 | David | Williams | [email protected] | isabella_garcia852 | false | 2024-07-08 16:45:16 |
| 6 | Olivia | Thomas | [email protected] | joseph_gonzalez522 | true | 2025-09-24 16:58:45 |
| 7 | Emily | Wilson | [email protected] | john_lopez202 | true | 2020-11-05 06:21:36 |
| 8 | Isabella | Taylor | [email protected] | sarah_miller899 | false | 2020-04-21 18:29:31 |
Copy, download, share, or pipe to another tool
INSERT INTO "users" ("id", "first_name", "last_name", "email", "username", "is_active", "created_at") VALUES
(1, 'Jane', 'Smith', '[email protected]', 'john_taylor563', FALSE, '2025-06-09 23:42:21'),
(2, 'David', 'Moore', '[email protected]', 'isabella_hernandez147', TRUE, '2021-03-02 16:55:12'),
(3, 'Richard', 'Anderson', '[email protected]', 'joseph_miller726', TRUE, '2022-01-06 09:24:40'),
(4, 'Robert', 'Smith', '[email protected]', 'jane_rodriguez454', FALSE, '2023-03-08 11:41:58'),
(5, 'David', 'Williams', '[email protected]', 'isabella_garcia852', FALSE, '2024-07-08 16:45:16'),
(6, 'Olivia', 'Thomas', '[email protected]', 'joseph_gonzalez522', TRUE, '2025-09-24 16:58:45'),
(7, 'Emily', 'Wilson', '[email protected]', 'john_lopez202', TRUE, '2020-11-05 06:21:36'),
(8, 'Isabella', 'Taylor', '[email protected]', 'sarah_miller899', FALSE, '2020-04-21 18:29:31'),
(9, 'Thomas', 'Moore', '[email protected]', 'charles_smith651', FALSE, '2021-10-27 23:56:42'),
(10, 'William', 'Rodriguez', '[email protected]', 'sophia_wilson569', FALSE, '2023-04-06 21:58:34');
Table
Same seed, same rows
Columns
Reproducible fixtures
Every value is produced by a seeded generator, so the same seed always yields the exact same rows. Commit a fixture, paste a shareable URL into a ticket, or write a test that asserts on specific values, and get identical output every time.
Built for your database
Output is dialect-aware: PostgreSQL gets TRUE/FALSE and SERIAL, MySQL gets backtick identifiers and AUTO_INCREMENT, and so on. Toggle a CREATE TABLE header, or export to CSV, JSON, NDJSON, or a typed TypeScript fixture instead.
Was this tool helpful?
Share Your Experience
Help others discover this tool!
Related tools
- SQL FormatterFormat and beautify SQL queries
- Fake Address GeneratorReproducible, multi-locale fake addresses with validation and map links; export JSON, CSV, SQL, or TypeScript
- Random User GeneratorReproducible seeded fake user profiles with locales and field selection; export JSON, NDJSON, CSV, SQL, or TypeScript
- Changelog GeneratorGenerate changelog from Git commit history
- Component Name GeneratorTurn a description into ranked, kind-aware component names with a file scaffold and a name validator (casing, collisions, clarity)
- Heroku Procfile GeneratorBuild a Heroku Procfile and matching app.json — process types, env vars, addons, dyno formation — plus a Procfile parser and audit
The seed is the input to a deterministic pseudo-random generator. Given the same seed, the same schema produces byte-for-byte identical rows every time, on every machine - same names, numbers, dates, everything. Change the seed (or click Regenerate, which picks a new random one) for a completely different but equally stable dataset. That reproducibility is what makes the output safe to commit as a fixture or assert on in a test.
Only the SQL syntax changes; the data is the same. PostgreSQL uses TRUE/FALSE for booleans, double-quoted identifiers, SERIAL for auto-increment, and JSONB. MySQL uses 1/0, backtick identifiers, and AUTO_INCREMENT. SQLite uses INTEGER PRIMARY KEY AUTOINCREMENT and stores most things loosely. SQL Server uses bracketed identifiers, BIT for booleans, and IDENTITY. The tool emits the right column types and literals for whichever you choose, so the script runs without edits.

