Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cột MySQL được đặt thành NOT NULL nhưng vẫn cho phép giá trị NULL

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; 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django Không thể thêm hoặc cập nhật hàng con:ràng buộc khóa ngoại không thành công

  2. SQL chọn thành viên thứ n của nhóm

  3. MySQL Cluster có thể xử lý cơ sở dữ liệu terabyte không

  4. Danh sách tham số mệnh đề IN trống trong MySQL

  5. SQL để kiểm tra xem cơ sở dữ liệu có trống không (không có bảng)