基本は↓
LOAD DATA INFILE ‘/tmp/data.csv’ INTO TABLE table01 |
デフォルトでは
\t (タブ)がフィールドの区切り
\n が改行
csvファイルを読み込むときは
FIELDS TERMINATED BY ‘,’ |
でカンマをフィールドの区切りに指定する。
行の区切りはテキストエディタによって違うので
LINES TERMINATED BY ‘\r\n’
とか
LINES TERMINATED BY ‘\r’
とか指定する。
LINES STARTING BY ‘xxx’(プリフィックス) |
とかすると
xxx”abc”,1
something xxx”def”,2
“ghi”,3
は
abc 1
def 2
となる。
ユーザー変数の使い方
インプット ファイル内のフィールドの順番が、テーブル内のカラムの順番と異なる場合は、カラム リストも指定しなければいけません。
カラム リストはカラム名かユーザ変数のどちらかを含みます。ユーザ変数を利用すると、カラムに結果を割り当てる前に SET 条項で値を変換する事ができます。
SET 条項の中のユーザ変数は、いくつかの方法で利用する事ができます。次の例は、t1.column1 の値に対して直接最初のインプット カラムを利用し、そして2番目のインプット カラムを t1.column2 の値に利用される前に、分割操作に影響されるユーザ変数に割り当てます。
LOAD DATA INFILE ‘file.txt’ INTO TABLE t1 (column1, @var1) SET column2 = @var1/100; |
SET 条項は、インプット ファイルから派生した物ではない値を提供する事ができます。次のステートメントは、現在の日付と時間に column3 を設定する事ができます。
LOAD DATA INFILE ‘file.txt’ |
インプット値をユーザ変数に割り当て、変数をテーブル カラムに割り当てない事で、インプット値を廃棄する事ができます。
LOAD DATA INFILE ‘file.txt’ INTO TABLE t1 (column1, @dummy, column2, @dummy, column3); |
コメントを残す