consolelog.tools

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 cases

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

  1. 1Start from a template (Users, Products, Orders) or build a schema from scratch.
  2. 2Add columns, name each one, and choose a field type; set min/max for numbers or values for enums.
  3. 3Set the table name, row count, and a seed (the same seed always regenerates the same rows).
  4. 4Pick a SQL dialect and an output format (SQL INSERT, CSV, JSON, NDJSON, or TypeScript).
  5. 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
Previewfirst 8 of 10
idfirst_namelast_nameemailusernameis_activecreated_at
1JaneSmith[email protected]john_taylor563false2025-06-09 23:42:21
2DavidMoore[email protected]isabella_hernandez147true2021-03-02 16:55:12
3RichardAnderson[email protected]joseph_miller726true2022-01-06 09:24:40
4RobertSmith[email protected]jane_rodriguez454false2023-03-08 11:41:58
5DavidWilliams[email protected]isabella_garcia852false2024-07-08 16:45:16
6OliviaThomas[email protected]joseph_gonzalez522true2025-09-24 16:58:45
7EmilyWilson[email protected]john_lopez202true2020-11-05 06:21:36
8IsabellaTaylor[email protected]sarah_miller899false2020-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

Rows

Same seed, same rows

Templates:

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