Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

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

Salah satu pesan kesalahan yang lebih umum di MySQL berbunyi seperti ini:“ERROR 1136 (21S01):Jumlah kolom tidak cocok dengan jumlah nilai pada baris 1 “.

Kesalahan ini biasanya terjadi saat Anda mencoba menyisipkan data ke dalam tabel, tetapi jumlah kolom yang Anda coba sisipkan tidak cocok dengan jumlah kolom dalam tabel.

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

Untuk memperbaiki masalah ini, pastikan Anda memasukkan jumlah kolom yang benar ke dalam tabel.

Atau, Anda dapat memberi nama kolom di INSERT pernyataan sehingga MySQL mengetahui kolom mana yang perlu dimasukkan data Anda.

Kesalahan juga dapat terjadi jika Anda memasukkan jumlah kolom yang salah ke ROW() klausa saat menggunakan VALUES pernyataan.

Contoh Kesalahan

Misalkan kita memiliki tabel berikut:

+----------+----------+----------+
| column_0 | column_1 | column_2 |
+----------+----------+----------+
|        1 |        2 |        3 |
|        4 |        5 |        6 |
+----------+----------+----------+

Kode berikut akan menyebabkan kesalahan:

INSERT INTO t1 VALUES (7, 8, 9, 10);

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 t1 VALUES (7, 8);

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 t1 VALUES (7, 8, 9);

Hasil:

Query OK, 1 row affected (0.00 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 t1 (column_0, column_1) VALUES (7, 8);

Hasil:

Query OK, 1 row affected (0.00 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. Membuat Aplikasi Web Dari Awal Menggunakan Python Flask dan MySQL:Bagian 2

  2. Mencegah injeksi SQL di Node.js

  3. Hitung jumlah nilai unik

  4. Perbedaan antara dua pendekatan tabel bergabung ini?

  5. Bagaimana cara cepat mengganti nama database MySQL (mengubah nama skema)?