Seed Data Generator
Generate realistic fake data for any database table in seconds.
Overview
The Seed Data Generator creates realistic, randomized test data for any table structure you define. Specify the table name and its columns, choose a data type for each column, set how many rows to generate (up to 10,000), preview the first 10 rows, and export the result as SQL INSERT statements, JSON, or CSV. No database connection is required — generation runs entirely in the browser.
Realistic Data
Names, emails, phone numbers, addresses, and other human data types produce plausible-looking values, not random strings. Emails match the generated name's first and last name.
Configurable Ranges
Integer, decimal, and date columns let you set min/max bounds so generated values stay within your domain constraints.
Live Preview
The first 10 rows are shown in a preview table before you export. Regenerate the preview as many times as needed to check the output looks right.
Multiple Export Formats
Export as SQL INSERT statements, JSON array, or CSV. Choose the format that matches your seed script or test fixture setup.
Defining the Schema
Start by entering a table name in the Table Name field, then add columns one by one.
Adding Columns
- Click + Add Column.
- Enter the column name (e.g.
first_name). - Select a data type from the dropdown (see the Data Type Reference table below).
- Configure any type-specific options that appear (min/max for numbers, enum list for enum type, date range for date types).
- Toggle Nullable if approximately 10% of values should be
NULL. - Toggle Unique to ensure no two rows have the same value for this column (for UUIDs and email addresses this is always enforced).
Import Schema from Schema Visualizer
Click Import Schema in the toolbar to load column definitions from a schema you already imported in the Schema Visualizer. This pre-fills the column list based on the selected table's columns and their types.
Reordering and Deleting Columns
Drag column rows to reorder them — the order determines the column order in SQL INSERT and CSV output. Click the trash icon on a column row to remove it.
Data Type Reference
| Type | Example Output | Configuration Options |
|---|---|---|
| uuid | 550e8400-e29b-41d4-a716-446655440000 | None — always v4 UUID, always unique |
| firstName | Alice | Locale (en / tr / de / fr / es) |
| lastName | Johnson | Locale |
| fullName | Alice Johnson | Locale |
alice.johnson@example.com | Domain suffix (example.com, test.org, etc.) | |
| phone | +1-555-0132 | Country code format |
| integer | 42 | Min value, max value |
| decimal | 19.95 | Min, max, decimal places (0–4) |
| boolean | true / false | True probability (0–100%) |
| date | 2024-03-15 | Start date, end date |
| timestamp | 2024-03-15T09:41:00Z | Start date, end date, timezone (UTC or local) |
| enum | One value from your list | Comma-separated list of allowed values, uniform or weighted distribution |
| text | A 1–3 sentence lorem ipsum paragraph | Min words, max words |
| url | https://example.com/path/to/page | Protocol (https/http), domain |
| ipAddress | 192.168.1.42 | IPv4 or IPv6 |
| country | Germany | Name or ISO code (DE) |
| city | Istanbul | Locale |
| postalCode | 10001 | Country format |
| companyName | Apex Solutions GmbH | Locale |
| autoIncrement | 1, 2, 3… | Start value, step |
| constant | A fixed value you specify | The constant value string |
Row Count & Preview
Use the Row Count slider or input to set the number of rows to generate (1 to 10,000). Click Preview to generate the first 10 rows and display them in the preview table. The preview re-randomizes each time you click Preview — all 10 rows are different samples from the full generation.
When you are satisfied with the preview, click Generate & Export to produce the full dataset in your chosen format.
Seed Locking
Enable Lock Seed to fix the random seed used for generation. With a fixed seed, the same schema and row count always produces identical output — useful for reproducible test fixtures in CI pipelines.
Export Formats
SQL INSERT
Generates INSERT INTO tablename (col1, col2, …) VALUES (…), (…); statements. Strings are single-quoted and escaped. NULLs are rendered as NULL. Batched into groups of 500 rows per statement for large datasets.
JSON Array
Generates a JSON array of objects: [{"col1":"val","col2":42}, …]. Suitable for seeding NoSQL databases, test fixtures, or any tool that consumes JSON.
CSV
Generates a comma-separated file with a header row. Strings containing commas or quotes are properly quoted. Suitable for bulk-load tools (COPY FROM, MySQL LOAD DATA INFILE).
Tips
- Use the autoIncrement type for primary key columns — it guarantees uniqueness and produces clean sequential IDs starting from 1.
- For foreign key columns, use integer with a min of 1 and a max equal to the number of rows in the parent table so references are always valid.
- Combine firstName and lastName columns with the same locale, then use the email type configured to derive from them for realistic name–email coherence.
- Use the constant type for columns that should have the same value in every row (e.g. a
tenant_idfor multi-tenant seed data). - For status or role columns, use enum with weighted distribution to produce a realistic mix (e.g. 70% active, 20% inactive, 10% pending).
AI Assistant
Open the built-in AI Assistant from the tab on the right edge of the screen to get help designing your field schema. The assistant sees the table name, the current field list (name, type, nullability), the row count, export format, and whether data has been generated yet, so you can ask things like:
- "What fields should an orders table have?"
- "What does the enum field type generate and how do I configure it?"
- "What null chance should I use for an optional phone field?"
- "How many rows and which format should I use for seeding a dev database?"
The assistant does not see the actual generated rows — it reasons over the field schema and settings shown on screen, not real output data.
FAQ
@example.com and other reserved domains to prevent accidental real-world delivery.