Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Membetulkan Ralat 'Kiraan lajur tidak sepadan dengan kiraan nilai' Semasa Mengimport Data ke MySQL dengan Skrip Bash?
Skrip Bash untuk Memasukkan Nilai dalam MySQL, Menyelesaikan Masalah Ralat Kiraan Lajur
Dalam artikel ini, kita akan mendalami topik mencipta bash skrip yang berinteraksi dengan lancar dengan pelayan MySQL dan mengimport data daripada fail teks. Kami akan meneroka ralat biasa yang dihadapi semasa proses ini dan menyediakan penyelesaian untuk memastikan pemasukan data berjaya.
Ralat Penghuraian:
Salah satu ralat yang paling biasa semasa mengimport data daripada fail teks ke MySQL menggunakan skrip bash ialah ralat "Column count doesn't match value count". Ralat ini biasanya berlaku apabila bilangan nilai yang anda cuba masukkan tidak sepadan dengan bilangan lajur yang ditentukan dalam jadual sasaran.
Contoh Senario:
Pertimbangkan skrip bash berikut:
#!/bin/bash echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('cat test.txt');" | mysql -uroot -ptest test;
Skrip ini cuba mengimport data daripada fail teks bernama "test.txt" ke dalam jadual bernama "test" dengan lajur "IP," "MAC" dan "SERVER." Walau bagaimanapun, jika fail teks tidak mengandungi nilai untuk ketiga-tiga lajur, skrip akan gagal dengan ralat "Kiraan lajur tidak sepadan dengan kiraan nilai".
Penyelesaian:
Untuk menyelesaikan ralat ini, kami perlu memastikan bahawa fail teks mengandungi bilangan nilai yang betul untuk setiap baris. Selain itu, kita boleh mengubah suai skrip bash untuk membaca data daripada fail teks baris demi baris dan melaksanakan penyata sisipan berasingan untuk setiap baris. Ini memastikan bilangan nilai sepadan dengan bilangan lajur.
Skrip Kemas Kini:
#!/bin/bash inputfile="test.txt" cat $inputfile | while read ip mac server; do echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('$ip', '$mac', '$server');" done | mysql -uroot -ptest test;
Skrip yang dikemas kini ini membaca data daripada "test.txt" fail menggunakan kucing dan paipkannya ke dalam gelung while. Gelung berulang melalui setiap baris, mengekstrak nilai IP, MAC dan SERVER, dan membina pernyataan sisipan untuk setiap baris. Penyata sisipan yang berasingan kemudiannya dilaksanakan menggunakan arahan mysql, memastikan bilangan nilai sepadan dengan bilangan lajur dalam jadual.
Dengan mengikut langkah ini, anda boleh mengimport data daripada fail teks ke dalam MySQL dengan berkesan menggunakan skrip bash sambil mengelakkan ralat "Kiraan lajur tidak sepadan dengan kiraan nilai".
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membetulkan Ralat 'Kiraan lajur tidak sepadan dengan kiraan nilai' Semasa Mengimport Data ke MySQL dengan Skrip Bash?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!