ホームページ >データベース >mysql チュートリアル >Bash を使用して MySQL にデータを挿入するときに発生する「列数が値数と一致しません」エラーを修正する方法

Bash を使用して MySQL にデータを挿入するときに発生する「列数が値数と一致しません」エラーを修正する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-18 08:23:10970ブラウズ

How to Fix

MySQL に値を挿入するための Bash スクリプト ソリューション

bash スクリプトを使用して MySQL に値を挿入しようとすると、次のようなエラーが発生する場合があります。列数と値数の不一致。このエラーは通常、入力データ形式がデータベース テーブル内の予期される列と一致しない場合に発生します。次の例を考えてみましょう。

以下のスクリプトは、テキスト ファイルから「test」という名前の MySQL テーブルに値を挿入することを目的としています。

#!/bin/bash
echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('cat test.txt');" | mysql -uroot -ptest test;

ただし、実行時にスクリプトはエラーを返します。 :

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

この問題を解決するには、テキスト ファイル「test.txt」のデータ形式を確認してください。データが正しくフォーマットされていない場合、MySQL テーブル内の予想される列数と挿入される値の間に不一致が生じます。

これは、別のアプローチを採用した修正されたスクリプトです:

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

このスクリプトは、テキスト ファイルの各行を反復処理し、各列 (IP、MAC、SERVER) の値を抽出します。次に、行ごとに SQL ステートメントを構築し、それを MySQL コマンドにパイプして、列数と値数が一致することを確認します。

スクリプトを変更し、テキスト ファイル内の入力データを適切にフォーマットすることで、次のことが可能になります。 bash スクリプトを使用して MySQL テーブルに値を正常に挿入しました。

以上がBash を使用して MySQL にデータを挿入するときに発生する「列数が値数と一致しません」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。