Dựa trên nghiên cứu của tôi, tôi sẽ nói rằng nó có thể là một thứ "bạn" và một thứ "MySQL". Kiểm tra định nghĩa bảng của bạn với SHOW CREATE TABLE table_name;
. Lưu ý bất kỳ trường nào được xác định bằng NOT NULL
.
Hướng dẫn Tham khảo MySQL 5.6:13.2.5 Cú pháp INSERT trạng thái:
Điều này có nghĩa là bạn đang sử dụng chế độ SQL nào không quan trọng. Nếu bạn đang thực hiện một hàng đơn INSERT
(theo mã mẫu của bạn) và chèn NULL
giá trị vào một cột được xác định bằng NOT NULL
, nó không được cho là hoạt động.
Trong cùng một hơi thở, trớ trêu thay, nếu bạn chỉ đơn giản bỏ qua giá trị khỏi danh sách giá trị, thì hướng dẫn sử dụng MySQL sẽ nói như sau và chế độ SQL có vấn đề trong trường hợp này:
Vì vậy, bạn không thể giành chiến thắng!;-) Đùa. Việc cần làm là chấp nhận NOT NULL
đó trên một trường bảng MySQL thực sự có nghĩa là Tôi sẽ không chấp nhận giá trị NULL cho một trường trong khi thực hiện một hàng duy nhất INSERT
, bất kể chế độ SQL . '
Tất cả những gì đang được nói, những điều sau đây từ sách hướng dẫn cũng đúng:
Vì vậy, hãy lấy lòng. Đặt các giá trị mặc định của bạn trong logic nghiệp vụ (các đối tượng) và để lớp dữ liệu chỉ đạo từ đó. Mặc định cơ sở dữ liệu có vẻ là một ý tưởng hay, nhưng nếu chúng không tồn tại, bạn có bỏ lỡ chúng không? Nếu một cái cây rơi trong rừng ...