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