Вмъквате празни низове и празният низ не е NULL
, за да проверите за NULL
грешка направи:
INSERT INTO `addresses` (`street`, `city`, `state`, `zip`) VALUES (NULL, NULL, NULL, NULL);
и ще видите грешка. NOT NULL
проверява само за стойности, които не са NULL
.
За да предотвратите празен низ, трябва да използвате тригери
, или направете проверките на езика за програмиране от страна на сървъра, за да конвертирате празните низове в NULL
преди да извършите INSERT
query. Примерен тригер за INSERT
може да бъде като:(това е само пример)
CREATE TRIGGER avoid_empty
BEFORE INSERT ON addresses
FOR EACH ROW
BEGIN
IF street = '' THEN SET street = NULL END IF;
END;