PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Trigger vs. vincolo di controllo

La regola pratica è usare CHECK vincolo quando possibile.

Un CHECK il vincolo è più veloce, più semplice, più portabile, richiede meno codice ed è meno soggetto a errori. I trigger possono essere facilmente aggirati da altri trigger, ad esempio.

Un TRIGGER è più complicato. Usalo quando devi , per esigenze più complesse.

Se un CHECK il vincolo è troppo restrittivo per il tuo caso o causa problemi nel ricaricare un dump, potresti utilizzare il NOT VALID modificatore come via di mezzo (Postgres 9.2+). E, facoltativamente, VALIDATE dopo. Vedi:

  • Disabilita tutti i vincoli e i controlli delle tabelle durante il ripristino di un dump