U voegt lege tekenreeksen in en lege tekenreeksen zijn niet NULL
, om te controleren op NULL
fout do:
INSERT INTO `addresses` (`street`, `city`, `state`, `zip`) VALUES (NULL, NULL, NULL, NULL);
en je zult een fout zien. De NOT NULL
controleert alleen op waarden die niet NULL
zijn .
Om een lege string te voorkomen, moet je ofwel triggers
gebruiken , of voer de controles uit op de programmeertaal aan de serverzijde om lege tekenreeksen om te zetten in NULL
voor het uitvoeren van INSERT
query.Een voorbeeldtrigger voor INSERT
kan zijn als:(dit is slechts een voorbeeld)
CREATE TRIGGER avoid_empty
BEFORE INSERT ON addresses
FOR EACH ROW
BEGIN
IF street = '' THEN SET street = NULL END IF;
END;