Mysql
 sql >> Database >  >> RDS >> Mysql

Un vincolo per impedire l'inserimento di una stringa vuota in MySQL

Normalmente lo faresti con il vincolo CHECK:

foo_test VARCHAR(50) NOT NULL CHECK (foo_test <> '')

Prima della versione 8.0 MySQL aveva un supporto limitato per i vincoli. Da Manuale di riferimento di MySQL :

La clausola CHECK viene analizzata ma ignorata da tutti i motori di archiviazione.

Se devi attenerti a una versione precedente, usa trigger come soluzione alternativa, come le persone hanno sottolineato.

In futuro, potresti voler dare un'occhiata a PostgreSQL , che si ritiene abbia un migliore supporto per l'integrità dei dati (tra altre cose ) di molte persone .