SQL INSERT statement generator

Set a table name and columns that match your schema, and FakeRows writes multi-row INSERT statements you can paste into psql, MySQL, SQLite or any SQL console. Numbers stay unquoted, booleans become TRUE and FALSE, and apostrophes in text are doubled so the statements run as written.

Preset:

Columns

Preview (first 10 rows)

Saved you some time? Leave a tip, entirely optional.

Rows are grouped 100 to a statement to keep each one a sensible size. Column names with spaces or symbols are wrapped in double quotes.

How the data is generated

FakeRows uses a small, fast pseudo-random number generator that starts from your seed. Text seeds are hashed to a number first, so “demo” and “bug-1234” both work. For every row it draws a first and last name, then fills each column in order: names, emails and usernames reuse that row’s name, addresses pick a house number, street and suffix, numbers fall inside the minimum and maximum you set, and dates land between 2020 and 2026. Because each value depends only on the seed, the columns and their order, the output is fully reproducible.

All values are safe to publish. Email domains are the example domains reserved for documentation, phone numbers sit in the 555-0100 to 555-0199 block set aside for fiction, and IP addresses come from the private 10.0.0.0/8 range. Nothing here will reach a real inbox, phone or server.

Export formats

CSV and TSV include a header row and quote values that contain the separator, quotes or line breaks. JSON is an array of flat objects with numbers and booleans kept as native types. SQL produces multi-row INSERT statements in batches of 100, escaping apostrophes and quoting column names that are not plain identifiers. The status line shows the row count and file size before you copy or download.

Tips for test data

Keep a fixed seed for fixtures and snapshot tests so failures are repeatable, and note the seed in your bug report so others can generate the same rows. Use small row counts while you shape the schema, then raise them for load or pagination tests. Add a Row ID column when your database expects a primary key, or a UUID when it should be globally unique. Your columns, seed and format are remembered on this device for next time; the generated data itself is never sent anywhere.

Frequently asked questions

Which databases does it work with?

The output is standard SQL that runs in PostgreSQL, SQLite and MySQL (with ANSI quotes for any quoted identifiers).

Does it create the table?

No. It writes INSERT statements only, so create the table with your own schema first.

How are booleans written?

As TRUE and FALSE. In older MySQL these map to 1 and 0 automatically.

Is FakeRows free?

Yes. Generate, copy and download as much as you like with no account.

Is anything uploaded?

No. All data is generated in your browser, and only your column settings are saved on this device.

More tools