Giới thiệu
MySQL cho phép đặt giá trị mặc định (DEFAULT) cho cột ngay khi tạo bảng: hàm CURRENT_DATE cho DATE, giá trị enum, NULL, v.v. Giá trị mặc định được dùng khi INSERT không cung cấp giá trị cho cột đó.
Ví dụ tạo bảng đầy đủ
CREATE TABLE demo33 (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
start_date DATE DEFAULT (CURRENT_DATE),
end_date DATE DEFAULT NULL,
category ENUM('Good', 'Medium', 'Low') DEFAULT 'Low'
);
Chèn dữ liệu kiểm tra DEFAULT
-- Chỉ cung cấp name → start_date = hôm nay, end_date = NULL, category = 'Low'
INSERT INTO demo33 (name) VALUES ('John');
-- Cung cấp name, end_date, category → start_date = hôm nay (DEFAULT)
INSERT INTO demo33 (name, end_date, category) VALUES ('David', '2020-12-21', 'Medium');
-- Cung cấp name, start_date, category → end_date = NULL (DEFAULT)
INSERT INTO demo33 (name, start_date, category) VALUES ('David', '2020-04-01', 'Good');
-- Cung cấp tất cả
INSERT INTO demo33 (name, start_date, end_date, category) VALUES ('David', '2020-03-10', '2020-08-22', 'Good');
Kết quả
+----+-------+------------+------------+----------+
| id | name | start_date | end_date | category |
+----+-------+------------+------------+----------+
| 1 | John | 2020-10-28 | NULL | Low |
| 2 | David | 2020-10-28 | 2020-12-21 | Medium |
| 3 | David | 2020-04-01 | NULL | Good |
| 4 | David | 2020-03-10 | 2020-08-22 | Good |
+----+-------+------------+------------+----------+
Lưu ý: DEFAULT (CURRENT_DATE) dùng ngoặc đơn cho hàm. MySQL 8.0.13+ hỗ trợ biểu thức làm DEFAULT. Enum default phải là một giá trị trong tập enum.