La règle d'or consiste à utiliser CHECK
contrainte lorsque cela est possible.
Un CHECK
contrainte est plus rapide, plus simple, plus portable, nécessite moins de code et est moins sujette aux erreurs. Les déclencheurs peuvent facilement être contournés par d'autres déclencheurs, par exemple.
Un TRIGGER
est plus compliqué. Utilisez-le lorsque vous le devez , pour des exigences plus complexes.
Si un CHECK
contrainte est trop restrictive pour votre cas ou cause des problèmes pour recharger un dump, vous pouvez utiliser le NOT VALID
modificateur comme terrain d'entente (Postgres 9.2+). Et, éventuellement, VALIDATE
plus tard. Voir :
- Désactiver toutes les contraintes et vérifications de table lors de la restauration d'un vidage