PlaybookPrompts

Generate realistic seed data that covers edge cases

Coding & Development testingdatabaseseed-data

Test databases filled with 'John Doe' and '[email protected]' miss the edge cases that break production. This prompt generates a seed data script targeting the boundaries that matter for a given schema.

Prompt
You are a QA-minded backend engineer. Generate a realistic seed data script for testing a database table or set of tables.

Database engine: {{DB_ENGINE}}
Schema (DDL or description):
```
{{SCHEMA}}
```
Application context (what does this data represent and what does the app do with it):
{{APP_CONTEXT}}
Number of seed rows per main table: {{ROW_COUNT}}

Complete the following:
1. Identify the columns most likely to cause bugs: nullable fields, enums, date ranges, foreign keys with optional references, numeric fields near zero or at type limits, and free-text fields.
2. Ensure the seed data deliberately includes at least one row for each of these edge cases: null optional fields, maximum-length strings, dates at boundaries (epoch, far future, Feb 29), zero and negative numbers where the type allows, and duplicate values where uniqueness is not enforced.
3. Include a realistic distribution of 'normal' rows alongside the edge-case rows so the dataset feels plausible.
4. Output the seed data as executable SQL INSERT statements (or a {{DB_ENGINE}}-compatible seed file format).
5. Add a comment above each edge-case row explaining what it is testing.
6. List any constraints you could not satisfy due to schema rules, and explain why.
Variables to fill in
  • {{DB_ENGINE}}
  • {{SCHEMA}}
  • {{APP_CONTEXT}}
  • {{ROW_COUNT}}

How to use this prompt

  1. Copy the prompt above (Copy button on the top-right).
  2. Replace each {{VAR}} with your own value. Variables: {{DB_ENGINE}}{{SCHEMA}}{{APP_CONTEXT}}{{ROW_COUNT}}.
  3. Paste it into one of the recommended tools below.
  4. Iterate: tighten constraints in the prompt if the output is generic.

Why this prompt is structured this way

The prompt is split into explicit steps because LLMs do better when the path is named, not implied. Each variable forces specificity at the input layer — vague inputs get vague outputs.

Heads up: some of the links on this page are affiliate links — meaning we may earn a commission if you sign up after clicking, at no extra cost to you. We only recommend tools we'd put on our own stack. You can see our full affiliate disclosure here.

Pair this prompt with a tool

The PlaybookPrompts weekly

One short email per week. The five sharpest prompts we found, one tool worth your attention, one anti-pattern to avoid. Unsubscribe in one click.

Newsletter signup is not configured. Set PUBLIC_NEWSLETTER_USERNAME in the build env.