首頁 > 資料庫 > mysql教程 > 從 Bash 腳本將資料插入 MySQL 時如何修復「列計數與值計數不符」錯誤?

從 Bash 腳本將資料插入 MySQL 時如何修復「列計數與值計數不符」錯誤?

Barbara Streisand
發布: 2024-12-20 22:52:11
原創
395 人瀏覽過

How to Fix

使用 Bash 腳本將值插入 MySQL

您已經建立了一個 Bash 腳本,旨在連接到 MySQL 伺服器並從文字檔案插入資料。但是,您在執行腳本時遇到了錯誤,具體為:

ERROR 1136 (21S01) at line 1: Column count doesn't match value count at row 1
登入後複製

問題在於命令的結構:

echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('cat test.txt');" | mysql -uroot -ptest test;
登入後複製

此命令本質上嘗試插入test.txt 檔案的全部內容作為單一值放入測試表中。由於您的測試表有三列(IP、MAC、SERVER),這會導致值的數量 (1) 和列的數量 (3) 不符。

要解決此問題,您將需要修改 Bash 腳本,將文字檔案的每一行視為要插入資料庫的一組單獨的值。這是腳本的修訂版本:

#!/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;
登入後複製

在此修改後的腳本中:

  • while 循環從test.txt 檔案中讀取每一行,並分配三行的值欄位(IP、MAC 和SERVER)到變數$ip、$mac 和$server。
  • 然後將值格式化為字串代表 SQL INSERT 語句。
  • 最後重複執行 mysql 指令,每次迭代都會在測試表中插入新行。

透過串流檔案讀取和執行單獨使用 MySQL 命令,可以確保文字檔案中的每一行都作為資料庫中的不同行正確插入。

以上是從 Bash 腳本將資料插入 MySQL 時如何修復「列計數與值計數不符」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板