Delete Data

Remove rows with a clear, fluent API. Deletes are consistent across adapters.

Prerequisite

Create a client with required dbSpec and an adapter factory (Runtime or Supabase).

Execution Rule

Writes execute immediately.
Use filters (e.g., eq('id', ...)) to target rows. Returns { data: null, error }.

Basics

1// Delete one user by id
2const { data, error } = await vibecode
3  .from('users')
4  .eq('id', 'u1')
5  .delete()

Conditional Deletes

1// Delete all draft posts for a user
2await vibecode
3  .from('posts')
4  .eq('user_id', 'u1')
5  .eq('published', false)
6  .delete()
7
8// Membership delete
9await vibecode
10  .from('comments')
11  .in('id', ['c1', 'c2', 'c3'])
12  .delete()

With Ordering / Limits (preconditions)

1// Delete only the 5 oldest unpublished posts
2await vibecode
3  .from('posts')
4  .eq('published', false)
5  .order('created_at', { ascending: true })
6  .limit(5)
7  .delete()

Types & Validation

  • Filter columns are validated against your Zod dbSpec.schema.
  • Response envelope: { data: null, error }.

Adapter Notes

  • RuntimeAdapter: in-memory delete; instant feedback for prototyping/tests.
  • SupabaseAdapter: deletes rows in Postgres; ensure RLS policies allow deletes.

Next Steps