Tumregeln är att använda CHECK
begränsning när det är möjligt.
En CHECK
begränsning är snabbare, enklare, mer portabel, behöver mindre kod och är mindre felbenägen. Triggers kan lätt kringgås av andra triggers, till exempel.
En TRIGGER
är mer komplicerat. Använd den när du måste , för mer komplexa krav.
Om en CHECK
begränsningen är för restriktiv för ditt fall eller orsakar problem med att ladda om en dump, kan du använda NOT VALID
modifierare som medelväg (Postgres 9.2+). Och, valfritt, VALIDATE
det senare. Se:
- Inaktivera alla begränsningar och tabellkontroller medan du återställer en dump