Eu suponho que você não queira em branco (string vazia, ao contrário de
NULL
) a serem permitidos na tabela também. Normalmente, é isso que um
CHECK
restrição para. Você faz algo como CREATE TABLE
mytable
(
myfield NOT NULL VARCHAR(200),
CHECK(myfield > '')
)
No entanto,
MySQL
analisa a restrição, mas não a impõe. Você ainda tem permissão para inserir valores vazios. Para contornar isso, crie um
BEFORE INSERT
acionar e levantar um sinal na tentativa de inserir um valor em branco:CREATE TRIGGER
tr_mytable_bi
BEFORE INSERT
ON mytable
FOR EACH ROW
BEGIN
IF NEW.myfield = '' THEN
SIGNAL SQLSTATE '45001' SET MESSAGE_TEXT = 'Blank value on mytable.myfield';
END IF;
END;
Faça o mesmo em
BEFORE UPDATE
se você também quiser proibir atualizações para um valor em branco.