En fait, avec MySQL ce n'est pas gagné :
Je ne suis vraiment pas convaincu par abs non plus : ça signifie que tu acceptes les valeurs négatives en entrée et que tu te retrouves en sortie avec une valeur positive. Niveau documentation, je pense qu'on a vu mieux. filter_var me paraît bien plus adapté aussi.
- pas de contrainte CHECK, parce que c'est là, au minimum, qu'il aurait fallu la mettre en place (sinon il faut l'écrire soi-même via un trigger en before insert/update qui lève une erreur)
- si tu mets ta colonne en UNSIGNED, a priori, une valeur négative finit en 0 avec un simple warning (out of range)
Je ne suis vraiment pas convaincu par abs non plus : ça signifie que tu acceptes les valeurs négatives en entrée et que tu te retrouves en sortie avec une valeur positive. Niveau documentation, je pense qu'on a vu mieux. filter_var me paraît bien plus adapté aussi.