A regra geral é usar
CHECK
restrição quando possível. Um
CHECK
restrição é mais rápida, mais simples, mais portátil, precisa de menos código e é menos propensa a erros. Os gatilhos podem ser facilmente contornados por outros gatilhos, por exemplo. Um
TRIGGER
é mais complicado. Use-o quando precisar , para requisitos mais complexos. Se um
CHECK
restrição é muito restritiva para o seu caso ou causa problemas para recarregar um dump, você pode usar o NOT VALID
modificador como meio termo (Postgres 9.2+). E, opcionalmente, VALIDATE
mais tarde. Ver:- Desabilite todas as restrições e verificações de tabela ao restaurar um dump