Tham khảo hướng dẫn sử dụng ,
Đối với mục nhập dữ liệu cho cột NOT NULL không có điều khoản DEFAULT rõ ràng, nếu câu lệnh INSERT hoặc REPLACE không có giá trị nào cho cột hoặc câu lệnh UPDATE đặt cột thành NULL, MySQL xử lý cột theo chế độ SQL có hiệu lực tại thời điểm:
- Nếu chế độ SQL nghiêm ngặt không được bật, MySQL sẽ đặt cột thành giá trị mặc định ngầm định cho kiểu dữ liệu cột.
- Nếu chế độ nghiêm ngặt được bật, sẽ xảy ra lỗi đối với các bảng giao dịch và câu lệnh được khôi phục lại. Đối với bảng không giao dịch, lỗi
xảy ra, nhưng nếu điều này xảy ra đối với hàng thứ hai hoặc tiếp theo của một câu lệnh nhiều hàng, thì các hàng trước đó sẽ được chèn.
Vì vậy, câu hỏi của bạn bây giờ có thể là, các giá trị mặc định ngầm định cho các kiểu dữ liệu cột khác nhau là gì? Của bạn đây:
Các giá trị mặc định ngầm định được xác định như sau:
- Đối với các loại số, giá trị mặc định là 0, ngoại trừ các loại số nguyên hoặc dấu phẩy động được khai báo bằng thuộc tính AUTO_INCREMENT
, giá trị mặc định là giá trị tiếp theo trong chuỗi.- Đối với các loại ngày và giờ khác với TIMESTAMP, giá trị mặc định là giá trị "0" thích hợp cho loại. Đối với cột TIMESTAMP đầu tiên trong bảng, giá trị mặc định là ngày và giờ hiện tại. Xem Phần 10.3, “Loại ngày và giờ”.
- Đối với các loại chuỗi không phải ENUM, giá trị mặc định là chuỗi trống. Đối với ENUM, giá trị mặc định là giá trị liệt kê đầu tiên.