Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Membetulkan Ralat 'Kiraan lajur tidak sepadan dengan kiraan nilai' Semasa Memasukkan Data ke dalam MySQL daripada Skrip Bash?

Bagaimana untuk Membetulkan Ralat 'Kiraan lajur tidak sepadan dengan kiraan nilai' Semasa Memasukkan Data ke dalam MySQL daripada Skrip Bash?

Barbara Streisand
Lepaskan: 2024-12-20 22:52:11
asal
381 orang telah melayarinya

How to Fix

Memasukkan Nilai ke dalam MySQL Menggunakan Skrip Bash

Anda telah mencipta skrip Bash yang bertujuan untuk menyambung ke pelayan MySQL dan memasukkan data daripada fail teks. Walau bagaimanapun, anda telah mengalami ralat dalam pelaksanaan skrip, khususnya:

ERROR 1136 (21S01) at line 1: Column count doesn't match value count at row 1
Salin selepas log masuk

Isunya terletak pada struktur arahan anda:

echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('cat test.txt');" | mysql -uroot -ptest test;
Salin selepas log masuk

Arahan ini pada asasnya cuba untuk memasukkan keseluruhan kandungan fail test.txt sebagai nilai tunggal ke dalam jadual ujian. Memandangkan jadual ujian anda mempunyai tiga lajur (IP, MAC, SERVER), ini mengakibatkan ketidakpadanan antara bilangan nilai (1) dan bilangan lajur (3).

Untuk menyelesaikan isu ini, anda akan perlu mengubah suai skrip Bash anda untuk merawat setiap baris fail teks sebagai set nilai yang berasingan untuk dimasukkan ke dalam pangkalan data. Berikut ialah versi semakan skrip anda:

#!/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;
Salin selepas log masuk

Dalam skrip yang diubah suai ini:

  • Gelung while membaca setiap baris daripada fail test.txt, memberikan nilai bagi tiga medan (IP, MAC dan SERVER) kepada pembolehubah $ip, $mac dan $server.
  • Nilainya kemudian diformatkan menjadi rentetan yang mewakili pernyataan SQL INSERT.
  • Akhir sekali, arahan mysql dilaksanakan berulang kali, dengan setiap lelaran memasukkan baris baharu ke dalam jadual ujian.

Dengan menstrimkan membaca fail dan pelaksanaan perintah MySQL secara berasingan, anda boleh memastikan bahawa setiap baris dalam fail teks dimasukkan dengan betul sebagai baris yang berbeza dalam pangkalan data.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Kiraan lajur tidak sepadan dengan kiraan nilai' Semasa Memasukkan Data ke dalam MySQL daripada Skrip Bash?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan