Database / Supabase basics Interview Questions
How is data validated before insertion in a Supabase table?
Validation in Supabase typically happens in layers rather than one place. At the database level, Postgres constraints (NOT NULL, CHECK, UNIQUE, foreign keys) reject structurally invalid rows regardless of which client sends them, making them the most reliable layer since they can't be bypassed by calling the API directly.
Beyond structural constraints, a BEFORE INSERT trigger calling a PL/pgSQL function can enforce business rules that are harder to express as a plain constraint, such as normalizing an email to lowercase or rejecting a row based on a calculation across other columns. Application-level validation (in the client or an Edge Function) is still useful for fast user feedback, but should be treated as a UX convenience layered on top of database constraints, not a substitute for them, since a client-side check can always be skipped by calling the API directly.
More Related questions...