Du indsætter tomme strenge, og tomme strenge er ikke NULL
, for at kontrollere for NULL
fejl gør:
INSERT INTO `addresses` (`street`, `city`, `state`, `zip`) VALUES (NULL, NULL, NULL, NULL);
og du vil se fejl. NOT NULL
kontrollerer kun for værdier, der ikke er NULL
.
For at forhindre tom streng enten skal du bruge triggere
, eller foretag kontrol på serversidens programmeringssprog for at konvertere tomme strenge til NULL
før du udfører INSERT
query. Et eksempel på trigger for INSERT
kan være sådan:(dette er kun et eksempel)
CREATE TRIGGER avoid_empty
BEFORE INSERT ON addresses
FOR EACH ROW
BEGIN
IF street = '' THEN SET street = NULL END IF;
END;