MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Perbaiki "ERROR 1136 (21S01):Jumlah kolom tidak cocok dengan jumlah nilai pada baris 1" saat Memasukkan Data di MariaDB

Jika Anda mendapati diri Anda mendapatkan kesalahan yang berbunyi seperti “ERROR 1136 (21S01):Jumlah kolom tidak cocok dengan jumlah nilai pada baris ” di MariaDB, mungkin karena Anda telah menentukan jumlah ekspresi yang salah untuk jumlah kolom di kolom saat mencoba memasukkan data ke dalam tabel.

Dengan kata lain, Anda mencoba memasukkan terlalu banyak kolom atau tidak cukup kolom.

Untuk memperbaikinya, sesuaikan INSERT . Anda pernyataan untuk memasukkan jumlah nilai yang benar ke dalam tabel.

Anda juga dapat memberi nama kolom di INSERT pernyataan sehingga MariaDB mengetahui kolom mana yang harus disisipkan setiap ekspresi.

Contoh Kesalahan

Misalkan kita memiliki tabel berikut:

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

Kode berikut akan menyebabkan kesalahan:

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

Hasil:

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

Dalam hal ini, saya mencoba memasukkan data untuk empat kolom ke dalam tabel yang hanya memiliki tiga kolom.

Kami akan mendapatkan kesalahan yang sama jika kami mencoba memasukkan terlalu sedikit kolom:

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

Hasil:

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

Solusi 1

Solusi yang jelas adalah dengan memasukkan jumlah baris yang benar. Oleh karena itu, kita dapat menulis ulang kode kita sebagai berikut:

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

Hasil:

Query OK, 1 row affected (0.010 sec)

Solusi 2

Cara lain untuk melakukannya adalah dengan secara eksplisit menamai kolom yang ingin kita masukkan datanya. Teknik ini dapat digunakan untuk menyisipkan lebih sedikit kolom daripada yang ada di tabel.

Contoh:

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

Hasil:

Query OK, 1 row affected (0.005 sec)

Metode ini dapat menghasilkan kesalahan yang berbeda jika ada kendala yang memerlukan nilai yang akan diteruskan untuk kolom tersebut (misalnya, jika tabel memiliki NOT NULL kendala pada kolom itu). Oleh karena itu, Anda harus memastikan bahwa Anda mematuhi batasan apa pun pada kolom saat melakukan ini.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MariaDB JSON_ARRAYAGG() Dijelaskan

  2. Perbedaan Antara SYSDATE() dan SEKARANG() di MariaDB

  3. MariaDB FIELD() vs FIND_IN_SET():Apa Bedanya?

  4. 20 Tips:Siapkan Database Anda untuk Black Friday &Cyber ​​Monday

  5. Kurangi Sebulan dari Tanggal di MariaDB