簡體   English   中英

使用Shell腳本將CSV文件上傳到數據庫

[英]CSV file upload into database using shell script

我正在使用腳本上傳csv文件

 export IFS=","
 cat  $_csv_files | read a b c d;

現在,我需要將csv文件的c列中的值插入到數據庫中表制造映射的列制造名稱中 ,該如何實現?

當我嘗試下面的代碼

mysql -u $_db_user -p$_db_password $_db << eof
    INSERT INTO \`manufacturemap\`
    ( \`manufacture_name\`) VALUES ($c)
eof

我得到:

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

我在這里呆了幾個小時,請幫幫我。

輸入(csv文件):

    a,b,c,d
1.01100156278101E+15,2014/07/08,2014/07/08,"Cash Withdrawal by Cheque-173320--TT1421957901"
1.01100156278101E+15,2014/07/08,2014/07/08,"Cheque Paid-173261--TT1421951241"
1.01100156278101E+15,2014/07/08,2014/07/08,"Cheque Paid-173298--TT1421951226"
1.01100156278101E+15,2014/06/08,2014/06/08,"Cash Withdrawal by Cheque-173319--TT1421858465"

嘗試這個:

#! /bin/sh

values ()
{
    cat "$@" | \
    while IFS=, read -r a b c d; do
        printf '%s\n' "$c"
    done | \
    paste -sd, -
}

printf 'INSERT INTO `manufacturemap` (`manufacture_name`) VALUES (%s)\n' "$(values $_csv_files)" | \
    mysql -u"$_db_user" -p"$_db_password" "$_db"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM