SQL INSERT generator - test data from a CREATE TABLE
Paste one or more CREATE TABLE statements and get a seed script with INSERTs that actually make sense: an email column gets an email, price gets two decimals, status cycles through plausible values, nullable columns get some NULLs, and foreign keys reference parent rows that exist, with tables ordered so the script applies cleanly. The same schema always produces the same rows, so the seed is reproducible.
You also get a JSON fixture per table for API and unit tests. Generated on the server, discarded after the response.
Example
CREATE TABLE product (
id BIGSERIAL PRIMARY KEY,
sku VARCHAR(40) UNIQUE NOT NULL,
name VARCHAR(200) NOT NULL,
price NUMERIC(12, 2) NOT NULL,
in_stock BOOLEAN NOT NULL DEFAULT true,
created_at TIMESTAMP NOT NULL DEFAULT now()
);
INSERT INTO product (id, sku, name, price, in_stock, created_at) VALUES
(1, 'RI-4214', 'Cameron Ellison', 5285.47, TRUE, '2024-10-20 00:45:36'),
(2, 'ZQ-7197', 'Elizabeth Sanchez', 4495.48, FALSE, '2024-06-25 02:40:03'),
(3, 'CP-5987', 'Tina Smith', 4688.65, FALSE, '2025-10-02 07:43:42'),
(4, 'RJ-6800', 'Thomas Johnson', 2576.79, TRUE, '2025-06-20 12:51:48'),
(5, 'JA-1811', 'Christine Burton', 2364.80, FALSE, '2025-10-24 10:54:30');
[
{
"id": 1,
"sku": "RI-4214",
"name": "Cameron Ellison",
"price": 5285.47,
"inStock": true,
"createdAt": "2024-10-20 00:45:36"
},
{
"id": 2,
"sku": "ZQ-7197",
"name": "Elizabeth Sanchez",
"price": 4495.48,
"inStock": false,
"createdAt": "2024-06-25 02:40:03"
},
{
"id": 3,
"sku": "CP-5987",
"name": "Tina Smith",
"price": 4688.65,
"inStock": false,
"createdAt": "2025-10-02 07:43:42"
},
{
"id": 4,
"sku": "RJ-6800",
"name": "Thomas Johnson",
"price": 2576.79,
"inStock": true,
"createdAt": "2025-06-20 12:51:48"
},
{
"id": 5,
"sku": "JA-1811",
"name": "Christine Burton",
"price": 2364.8,
"inStock": false,
"createdAt": "2025-10-24 10:54:30"
}
]