Sie fügen leere Zeichenfolgen ein, und leere Zeichenfolgen sind nicht NULL
, um auf NULL
zu prüfen Fehler machen:
INSERT INTO `addresses` (`street`, `city`, `state`, `zip`) VALUES (NULL, NULL, NULL, NULL);
und Sie werden Fehler sehen. Der NOT NULL
prüft nur auf Werte, die nicht NULL
sind .
Um entweder leere Strings zu verhindern, müssen Sie Trigger
verwenden , oder führen Sie die Überprüfungen in der serverseitigen Programmiersprache durch, um leere Zeichenfolgen in NULL
zu konvertieren bevor Sie INSERT
ausführen query.Ein Beispieltrigger für INSERT
kann so aussehen:(dies ist nur ein Beispiel)
CREATE TRIGGER avoid_empty
BEFORE INSERT ON addresses
FOR EACH ROW
BEGIN
IF street = '' THEN SET street = NULL END IF;
END;