Lỗi 1136 xảy ra khi số giá trị trong VALUES không khớp số cột trong bảng (thường do quên cột AUTO_INCREMENT).
Ví dụ lỗi
mysql> CREATE TABLE DemoTable1353 (Id INT NOT NULL AUTO_INCREMENT, Name VARCHAR(20), Age INT, PRIMARY KEY(Id));
mysql> INSERT INTO DemoTable1353 VALUES('Chris', 23); -- LỖI: 2 giá trị cho 3 cột
ERROR 1136 (21S01): Column count doesn't match value count at row 1
Giải pháp
Cách 1: Chỉ định cột (khuyến khích)
mysql> INSERT INTO DemoTable1353(Name, Age) VALUES('Chris', 23); -- OK, Id tự sinh
Cách 2: Truyền NULL/0/DEFAULT cho AUTO_INCREMENT
mysql> INSERT INTO DemoTable1353 VALUES(NULL, 'Chris', 23); -- OK mysql> INSERT INTO DemoTable1353 VALUES(0, 'Chris', 23); -- OK mysql> INSERT INTO DemoTable1353 VALUES(DEFAULT, 'Chris', 23); -- OK
Kết quả sau khi chèn 4 hàng:
mysql> SELECT * FROM DemoTable1353;
+----+-------+------+ | Id | Name | Age | +----+-------+------+ | 1 | Chris | 23 | | 2 | David | 21 | | 3 | Bob | 24 | | 4 | John | 47 | +----+-------+------+
Best practice: Luôn viết INSERT INTO bang (cot1, cot2) VALUES (...) - rõ ràng, an toàn khi schema thay đổi.