Ograniczenie CHECK
Mechanizm SQL: predykat, który musi spełniać każdy wiersz, np. CHECK (age >= 0). Walidacja na poziomie bazy zamiast w kodzie aplikacji — gwarantuje niezmiennik, nawet gdy zapisuje inny klient.
Dobre do reguł dziedziny: status IN ('active','pending','closed'), email LIKE '%@%', start_date < end_date. PostgreSQL obsługuje je w pełni; MySQL długo je ignorował (parsował, ale nie wymuszał) — naprawiono to dopiero w 8.0.16 (2019). Często łączone z typami domenowymi do wyrażania złożonej walidacji. Wydajność: proste warunki nic nie kosztują przy INSERT/UPDATE; sprawdzeń z podzapytaniem (CHECK z SELECT) standard SQL nie przewiduje. Podobny pomysł dla walidacji między wierszami to ograniczenia wykluczające (exclusion constraints) w PostgreSQL.