Nếu bạn gặp lỗi có nội dung “ ERROR 3942 (HY000):Mỗi hàng của mệnh đề VALUES phải có ít nhất một cột ”Trong MySQL, bạn có thể có một phương thức khởi tạo hàng trống khi sử dụng VALUES
tuyên bố.
Để khắc phục sự cố này, hãy đảm bảo rằng bạn có ít nhất một giá trị trong mỗi ROW()
mệnh đề trong VALUES
tuyên bố.
Ví dụ về Lỗi
Dưới đây là một ví dụ về mã dẫn đến lỗi:
VALUES ROW();
Kết quả:
ERROR 3942 (HY000): Each row of a VALUES clause must have at least one column, unless when used as source in an INSERT statement.
Đây là một ví dụ rất đơn giản, nhưng sự đơn giản của nó cho chúng ta thấy chính xác những gì đã xảy ra. Tôi đang sử dụng VALUES
nhưng có ROW()
trống mệnh đề.
Giải pháp
Để khắc phục sự cố, tất cả những gì chúng ta cần làm là cung cấp ít nhất một giá trị cho ROW()
mệnh đề:
VALUES ROW('Jet');
Kết quả:
+----------+ | column_0 | +----------+ | Jet | +----------+
Thông thường, chúng tôi sẽ bao gồm nhiều hơn một giá trị trong mỗi ROW()
và có thể nhiều hơn một ROW()
mệnh đề. Ví dụ:
VALUES ROW(1, 'Jet', 'Black'), ROW(2, 'Faye', 'Valentine');
Kết quả:
+----------+----------+-----------+ | column_0 | column_1 | column_2 | +----------+----------+-----------+ | 1 | Jet | Black | | 2 | Faye | Valentine | +----------+----------+-----------+
Dù bằng cách nào, chúng tôi cần cung cấp ít nhất một giá trị cho mỗi ROW()
mệnh đề.