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