Ogólną zasadą jest użycie CHECK jeśli to możliwe.
CHECK ograniczenie jest szybsze, prostsze, bardziej przenośne, wymaga mniej kodu i jest mniej podatne na błędy. Wyzwalacze można łatwo obejść na przykład przez inne wyzwalacze.
TRIGGER jest bardziej skomplikowana. Używaj go, gdy musisz , dla bardziej złożonych wymagań.
Jeśli CHECK ograniczenie jest zbyt restrykcyjne dla twojego przypadku lub powoduje problemy z ponownym załadowaniem zrzutu, możesz użyć NOT VALID modyfikator jako środek (Postgres 9.2+). I opcjonalnie CHECK to później. Zobacz:
- Wyłącz wszystkie ograniczenia i sprawdzanie tabeli podczas przywracania zrzutu