2012-04-30 19 views
1

可変テキストファイルから(SQLサーバー上に存在する)テーブルにデータを挿入する方法を知りたい。最初の時点で可変テキストファイルからテーブルにデータを挿入するにはどうしたらいいですか?

、私はこのようLOAD DATA INFILEコマンドを使用しようとしました:

mysql --user=user --password=password --database=database<<EOF 
LOAD DATA INFILE 'test.txt' INTO TABLE example 
FIELD TERMINATED BY ',' LINES TERMIANATED BY '\n'; 
EOF 

それは働いていました。しかし、あなたが見ることができるように、テキストファイルはこの方法でスクリプトで修正されています。 だから私はこの構造を第二に考える。

cat "${FILE}" | while read line ; do 
#a valid INSERT command 

echo ${INSERT} | mysql --user=user --password=password --database=database 
done 

各行から有効なINSERTコマンドを作成したいが、何をすべきかわからない。

ご存知ですか?ありがとう。

+1

どのデータベースSQlサーバまたはmysql?可変ラインデータのサンプルを表示できますか?各ラインタイプの列はどのようになっていますか? – HLGEM

答えて

1

あなたがロードしにそれをロードするためのテーブルへの入力ファイルを指定することを可能にする機能を定義して従うの例のように、あなたのヒアドキュメント内の変数展開することができます:変数は、常に拡張することができ

load_file_into_db() { 
    infile=$1 
    table=$2 
    mysql --user=user --password=password --database=database<<EOF 
    LOAD DATA INFILE '${infile}' INTO TABLE ${table} 
    FIELD TERMINATED BY ',' LINES TERMIANATED BY '\n'; 
    EOF 
} 

# Then you can call the function like so 
load_file_into_db text.txt example 

を終了文字を一重引用符で囲まない限り(すなわち、< <の前にEOFの代わりにEOFを使用する場合)

関連する問題