Khi cột là AUTO_INCREMENT, bạn có thể truyền NULL, 0 hoặc DEFAULT để MySQL tự sinh giá trị thay vì chỉ định thủ công.
Ví dụ minh họa
Tạo bảng:
mysql> CREATE TABLE DemoTable1350 (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName VARCHAR(20)
);
Chèn 3 hàng với 3 cách khác nhau:
mysql> INSERT INTO DemoTable1350 VALUES(NULL, 'Chris'); mysql> INSERT INTO DemoTable1350 VALUES(0, 'Chris'); mysql> INSERT INTO DemoTable1350 VALUES(DEFAULT, 'Chris');
Kết quả - MySQL tự gán 1, 2, 3:
mysql> SELECT * FROM DemoTable1350;
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 1 | Chris | | 2 | Chris | | 3 | Chris | +-----------+-------------+
Giải thích:
NULL: cách phổ biến nhất, rõ ràng ý định "tự động".0: hoạt động vì MySQL coi 0 như "không có giá trị" cho AUTO_INCREMENT.DEFAULT: tường minh dùng giá trị mặc định (tự sinh).
Best practice: Luôn liệt kê cột trong INSERT: INSERT INTO DemoTable1350(StudentName) VALUES('Chris') - không cần lo cột AUTO_INCREMENT.