Mysql
 sql >> Base de données >  >> RDS >> Mysql

Une contrainte pour empêcher l'insertion d'une chaîne vide dans MySQL

Normalement, vous feriez cela avec la contrainte CHECK :

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

Avant la version 8.0, MySQL avait une prise en charge limitée des contraintes. À partir du Manuel de référence MySQL :

La clause CHECK est analysée mais ignorée par tous les moteurs de stockage.

Si vous devez vous en tenir à une ancienne version, utilisez des triggers comme solution de contournement, comme les gens l'ont souligné.

À l'avenir, vous voudrez peut-être jeter un œil à PostgreSQL , qui est considéré comme ayant un meilleur support pour l'intégrité des données (parmi autres choses ) par de nombreuses personnes .