Está insertando cadenas vacías y las cadenas vacías no son NULL
, para buscar NULL
error hacer:
INSERT INTO `addresses` (`street`, `city`, `state`, `zip`) VALUES (NULL, NULL, NULL, NULL);
y verás el error. El NOT NULL
comprueba solo los valores que no son NULL
.
Para evitar una cadena vacía, debe usar triggers
, o haga las comprobaciones en el lenguaje de programación del lado del servidor para convertir cadenas vacías a NULL
antes de realizar INSERT
query.Un disparador de ejemplo para INSERT
puede ser como:(esto es solo un ejemplo)
CREATE TRIGGER avoid_empty
BEFORE INSERT ON addresses
FOR EACH ROW
BEGIN
IF street = '' THEN SET street = NULL END IF;
END;