Database Seed Data Generator
Paste your schema and get INSERT statements full of realistic test data. Values are chosen from each column’s name and type, so first_name gets names, email gets addresses, price gets money amounts and status gets one of its enum values. Tables are filled in dependency order, foreign keys always point at existing rows, unique columns stay unique and the same seed always gives the same data.
- Runs in your browser
- No sign-up
- Free to use
How to use Database Seed Data Generator
- Paste the CREATE TABLE statements.
- Choose rows per table, seed, database and locale.
- Pick NULL, transaction and cleanup options.
- Run the seed script on a development database.
Database Seed Data Generator features
Smart values
Names, e-mails, phones, cities, slugs, SKUs, prices and text by column name.
Types respected
Integers, decimals with scale, dates, booleans, enums, UUIDs and JSON.
Constraints
Unique values, NOT NULL, VARCHAR lengths and composite keys.
Valid relations
Parents first; foreign keys pick existing rows.
Repeatable
A seed number makes the data deterministic.
Locales
English, German, Spanish and Bangladeshi names and places.
When to use Database Seed Data Generator
- Filling a development database for UI work.
- Creating fixtures for automated tests.
- Demonstrating an application with plausible data.
- Testing query performance with more rows.
Database Seed Data Generator FAQ
How are values chosen?
From the column name first (email, first_name, city, price, slug…) and the type second. ENUM and CHECK lists use their allowed values, and text columns get sentences.
Will foreign keys be valid?
Yes. Tables are filled in dependency order and each foreign key picks one of the rows already generated for the referenced table.
What does the seed do?
It initialises the random generator, so the same seed and settings always produce exactly the same data, which keeps tests reproducible.
Are auto-increment ids inserted?
No, the database assigns them. The references assume the tables start empty, so ids begin at 1.
Is the data real?
No. Names come from small built-in lists and all e-mail addresses use example domains, so no real person’s data is used.
Is anything uploaded?
No. The data is generated in your browser.
Test data that fits the schema
An empty database makes it hard to develop and test an application: lists look broken, pagination cannot be tried and queries are fast for the wrong reasons. Writing test rows by hand is slow, and random data that ignores the schema fails on the first constraint. This generator reads the schema and produces data that satisfies it.
Values come from the column’s meaning as well as its type. Names, e-mail addresses, phone numbers, cities, countries, postal codes, URLs, slugs, SKUs, currencies, titles and descriptions are recognised by column name; prices and totals get realistic amounts with the column’s decimal scale; quantities, stock and view counts get suitable ranges; and timestamps are spread over the last two years, with updated or published dates after the creation date.
Constraints are respected. Unique columns never repeat, NOT NULL columns are always filled, strings are cut to their VARCHAR length, enum columns use their allowed values, and composite primary keys skip duplicate combinations. Optional columns are left NULL now and then, so screens handle missing values too.
Relations are the hardest part of test data. The generator orders the tables by their foreign keys, fills parents first, and lets each foreign key pick one of the rows that already exist, so every reference is valid and the script runs with foreign key checks enabled.
A seed number makes everything repeatable: the same schema, settings and seed always produce the same rows, so tests and screenshots stay stable. The data is fictional, built from small lists of common names, and all e-mail addresses use example domains.