2016-04-19 17 views
2

mysql dbに自動的に.csvをSQLテーブルにインポートする方法はありますか?私はそれを手動で行う方法を知っていますが、.csvが毎晩PeopleSoftからエクスポートされ、Linux環境でSQLテーブルに自動的にインポートされるようにしたいという状況があります。 pleseは私にそれを行うためのサンプルスクリプトを与える..方法があれば誰でもその方向に私を指すことができる(私はSQLの専門家ではない)!!Linux環境でmysql dbのcsvインポートを自動化

答えて

0

ストアドプロシージャ を作成してSPにload csv queryを書き込むことができます。 イベントを作成してSPを呼び出します。 私はこれが役立つことを願っています。

CREATE EVENT IF NOT EXISTS `load_csv_event` 
    ON SCHEDULE EVERY 23 DAY_HOUR 
    DO CALL my_sp_load_csv(); 

Alosでは、イベントを直接作成して読み込みクエリを書き込むことができます。

+0

応答をお寄せいただきありがとうございます...しかし、私はmysql sp ... can u plsでload queryを呼び出すことはできません。もしそれが..ダンプコードがあります.. – yuvaraj

+0

こんにちはpriyanshu..howは直接イベントを作成し、それに負荷クエリを書く... plseはそれを行う方法を教えてください.. – yuvaraj

+0

Windowsタスクスケジューラを実行します。 クエリを読み込み、スケジューラで実行する.batファイルを作成します。 私はまだ行っていませんが、動作するはずです。 新しいものを試しても問題ありません。 – Priyanshu

0

あなたは、たとえば、crontabのジョブを作成することができます。

load_script.shは(それを実行可能にすることを忘れないでください)等であってもよい
* * * * * /path/to/load_script.sh 

#!/bin/bash 
IMPORTED_FILE_PATH=/path/to/your/imported/file.csv 
TABLENAME=target_table_name 
DATABASE=db_name 
TMP_FILENAME=/tmp/${TABLENAME}.cvs 
# do nothing if imported file does not exist 
[ -f "$IMPORTED_FILE_PATH" ] || exit 0 
# if temporary file exists, then it means previous import job is running. Also do nothing 
[ -f "$TMP_FILENAME" ] && exit 0 
# Move it to tmp and rename to target table name 
mv "$IMPORTED_FILE_PATH" "$TMP_FILENAME" 
mysqlimport --user=mysqlusername --password=mysqlpassword --host=mysqlhost --local $DATABASE $TMP_FILENAME 
rm -f "$TMP_FILENAME" 

これは一例です(未検証)。エラー処理、ログなどを追加する必要があります。 mysqlimport

+0

ありがとうu aleksandr ...私はvlを試して、pls私は間にクエリがある場合knwを教えてください.. – yuvaraj

関連する問題