Bạn đang chèn các chuỗi trống và chuỗi trống không phải là NULL
, để kiểm tra NULL
lỗi do:
INSERT INTO `addresses` (`street`, `city`, `state`, `zip`) VALUES (NULL, NULL, NULL, NULL);
và bạn sẽ thấy lỗi. NOT NULL
chỉ kiểm tra các giá trị không phải là NULL
.
Để ngăn chuỗi trống, bạn phải sử dụng trình kích hoạt
hoặc thực hiện kiểm tra ngôn ngữ lập trình phía máy chủ để chuyển đổi các chuỗi trống thành NULL
trước khi thực hiện INSERT
Một ví dụ về trình kích hoạt cho INSERT
có thể giống như:(đây chỉ là một ví dụ)
CREATE TRIGGER avoid_empty
BEFORE INSERT ON addresses
FOR EACH ROW
BEGIN
IF street = '' THEN SET street = NULL END IF;
END;