ホームページ >データベース >mysql チュートリアル >Bash を使用して MySQL にデータを挿入するときに発生する「列数が値数と一致しません」エラーを修正する方法
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 サイトの他の関連記事を参照してください。