Vous avez écrit "Je peux toujours insérer des chaînes vides (=NULL)", ce qui ressemble à un malentendu. En SQL, une chaîne vide n'est pas évaluée à NULL, ou vice versa. Essayez d'insérer une chaîne vide et de faire SELECT from wall where token_message is NULL
. Vous devriez récupérer zéro ligne. Ensuite, essayez de faire une insertion où vous spécifiez NULL
(sans guillemets) comme valeur de votre colonne, et vous devriez obtenir le message d'erreur attendu.
Si ces tests fonctionnent comme prévu, alors tout va bien, et votre problème est en fait que vous voulez empêcher l'insertion de chaînes vides. Consultez cette question pour des suggestions, ou vérifiez simplement les chaînes vides lors de la validation, avant la requête.