Nếu bạn gặp lỗi có nội dung như “ ERROR 1136 (21S01):Số cột không khớp với số giá trị ở hàng 2 ”Khi sử dụng VALUES
trong MySQL, có thể là do số cột được chỉ định trong ROW()
không khớp mệnh đề.
Để khắc phục lỗi này, hãy đảm bảo rằng tất cả ROW()
các mệnh đề chứa chính xác cùng một số cột.
Ví dụ về Lỗi
Dưới đây là một ví dụ về mã sẽ tạo ra lỗi:
VALUES ROW(1, 2), ROW(3);
Kết quả:
ERROR 1136 (21S01): Column count doesn't match value count at row 2
Trong trường hợp này, tôi đã chuyển hai giá trị với ROW()
đầu tiên nhưng chỉ có một giá trị với giá trị thứ hai.
Đó là nguyên nhân gây ra lỗi.
Giải pháp
Để khắc phục lỗi, tất cả những gì chúng ta cần làm là đảm bảo rằng tất cả ROW()
các mệnh đề chứa cùng một số giá trị.
Ví dụ:
VALUES ROW(1, 2), ROW(3, 4);
Kết quả:
+----------+----------+ | column_0 | column_1 | +----------+----------+ | 1 | 2 | | 3 | 4 | +----------+----------+
Các nguyên nhân khác gây ra lỗi
Lỗi tương tự cũng có thể xảy ra khi sử dụng INSERT
câu lệnh chèn sai số cột vào bảng.
Trong những trường hợp như vậy, hãy đảm bảo rằng bạn chèn đúng số hàng. Ngoài ra, để chèn dữ liệu vào ít cột hơn bảng chứa, bạn có thể đặt tên rõ ràng cho các cột để chèn dữ liệu.