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.