Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan Ralat Tidak Padan Kiraan Lajur MySQL Apabila Memasukkan Data dengan Skrip Bash?

Bagaimana untuk Membetulkan Ralat Tidak Padan Kiraan Lajur MySQL Apabila Memasukkan Data dengan Skrip Bash?

Linda Hamilton
Linda Hamiltonasal
2024-12-23 21:09:11649semak imbas

How to Fix MySQL Column Count Mismatch Errors When Inserting Data with a Bash Script?

Skrip Sisipan MySQL dengan Skrip Bash

Apabila cuba memasukkan nilai ke dalam pangkalan data MySQL melalui skrip bash, anda mungkin menghadapi ralat berkenaan kiraan lajur tidak sepadan. Ini menunjukkan bahawa skrip anda cuba memasukkan nilai yang tidak sejajar dengan bilangan lajur dalam jadual sasaran.

Untuk menyelesaikan isu ini, pertimbangkan untuk mengubah suai skrip bash anda seperti berikut:

#!/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;

Dalam skrip yang dikemas kini ini:

  1. fail input ialah pembolehubah yang menyimpan nama fail teks yang mengandungi nilai yang akan dimasukkan.
  2. Kami menggunakan cat untuk membaca fail teks dan menyalurkan kandungannya ke gelung while, yang berulang pada setiap baris.
  3. Di dalam gelung, kami membaca IP, MAC dan SERVER nilai daripada baris ke dalam pembolehubah ip, mac dan pelayan masing-masing.
  4. Kami kemudian membina pernyataan SQL INSERT dengan nilai yang sesuai dan menyalurkannya ke arahan mysql, yang bersambung ke pelayan MySQL, mengesahkan dengan bukti kelayakan yang disediakan dan melaksanakan pernyataan SQL.

Skrip yang diubah suai ini membaca nilai daripada fail teks baris demi baris dan melaksanakan operasi sisipan untuk setiap set nilai, mengambil kira bilangan lajur yang betul dalam jadual sasaran.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat Tidak Padan Kiraan Lajur MySQL Apabila Memasukkan Data dengan Skrip Bash?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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