MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Khắc phục “LỖI 1136 (21S01):Số lượng cột không khớp với số lượng giá trị ở hàng 1” khi Chèn Dữ liệu vào MariaDB

Nếu bạn thấy mình 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 ”Trong MariaDB, có thể là do bạn đã chỉ định sai số biểu thức cho số cột trong cột khi cố gắng chèn dữ liệu vào bảng.

Nói cách khác, bạn đang cố gắng chèn quá nhiều cột hoặc không đủ cột.

Để khắc phục, hãy điều chỉnh INSERT của bạn câu lệnh để chèn số lượng giá trị chính xác vào bảng.

Bạn cũng có thể đặt tên cho các cột trong INSERT của mình để MariaDB biết mỗi biểu thức cần được chèn vào những cột nào.

Ví dụ về Lỗi

Giả sử chúng ta có bảng sau:

+-------+---------+---------+
| PetId | PetName | PetType |
+-------+---------+---------+
|     1 | Fluffy  | Cat     |
|     2 | Tweet   | Bird    |
+-------+---------+---------+

Đoạn mã sau sẽ gây ra lỗi:

INSERT INTO Pets VALUES ( 3, 'Wag', 'Dog', 'Brown' );

Kết quả:

ERROR 1136 (21S01): Column count doesn't match value count at row 1

Trong trường hợp này, tôi đã cố gắng chèn dữ liệu cho bốn cột vào một bảng chỉ có ba cột.

Chúng tôi sẽ gặp lỗi tương tự nếu chúng tôi cố gắng chèn quá ít cột:

INSERT INTO Pets VALUES ( 3, 'Wag' );

Kết quả:

ERROR 1136 (21S01): Column count doesn't match value count at row 1

Giải pháp 1

Giải pháp rõ ràng là chèn đúng số hàng. Do đó, chúng tôi có thể viết lại mã của mình như sau:

INSERT INTO Pets VALUES ( 3, 'Wag', 'Dog' );

Kết quả:

Query OK, 1 row affected (0.010 sec)

Giải pháp 2

Một cách khác để làm điều đó là đặt tên rõ ràng cho các cột mà chúng ta muốn chèn dữ liệu. Kỹ thuật này có thể được sử dụng để chèn ít cột hơn trong bảng.

Ví dụ:

INSERT INTO Pets ( PetId, PetName ) VALUES ( 3, 'Wag' );

Kết quả:

Query OK, 1 row affected (0.005 sec)

Phương thức này có thể dẫn đến một lỗi khác nếu có bất kỳ ràng buộc nào yêu cầu giá trị được chuyển cho cột đó (ví dụ:nếu bảng có NOT NULL ràng buộc vào cột đó). Do đó, bạn cần đảm bảo rằng mình đang tuân thủ mọi ràng buộc đối với cột khi thực hiện việc này.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách quản lý MariaDB 10.3 với ClusterControl

  2. Cách làm cho cơ sở dữ liệu MySQL hoặc MariaDB của bạn khả dụng cao trên AWS và Google Cloud

  3. Tránh khóa nhà cung cấp cơ sở dữ liệu cho MySQL hoặc MariaDB

  4. MariaDB JSON_ARRAY_APPEND () Giải thích

  5. Trả lại hàng ngẫu nhiên từ một bảng trong MariaDB