Você escreveu:"Ainda posso inserir strings vazias (=NULL)", o que parece um mal-entendido. No SQL, uma string vazia não é avaliada como NULL ou vice-versa. Tente inserir uma string vazia e fazer
SELECT from wall where token_message is NULL
. Você deve obter zero linhas de volta. Em seguida, tente fazer uma inserção onde você especifica NULL
(sem aspas) como o valor da sua coluna e você deverá receber a mensagem de erro esperada. Se esses testes funcionarem conforme o esperado, tudo estará bem, e seu problema é, na verdade, que você deseja impedir que strings em branco sejam inseridas. Confira esta pergunta para sugestões, ou apenas verifique se há strings em branco durante a validação, antes da consulta.