2017-02-28 24 views
-2

私は13の列を持つcsvファイルを持っています。これらの各列にはたくさんのデータがあり、このデータを.csvファイルから抽出することができますmysqlデータベース。CSVファイルからデータベースにデータをインポートする方法

最初に、私はcsvファイルの各カラムの特定のテーブルを作成するのに助けが必要です。私はmysqlで非常に新しいので、各テーブルにどの属性を割り当てるべきかについてはあまりよく分かりませんでした。ここで

PID、START_TIME、END_TIME、EPOCH_START、epoch_end、complete_title、media_typeこの、masterband、サービス、brand_pid、is_clip、カテゴリー、タグ

... csvファイルの構造であり、カラム下

データ p00547jm(PID)、1003394820(START_TIME)、1003999620(END_TIME)、2001-10-18T08:47:00(EPOCH_START)、2001-10-25T08:47:00(epoch_end)、in_our_time :_democracy(complete_title)、audio(media_type)、bbc_radio_four(masterband)、bbc_radio_four(サービス(カテゴリ)、[democracy.history.philosophy.plato.ancient_greece](タグ)

()タグ:0301:0、1:0、0:
+1

あなたは、このリンク http://stackoverflow.com/questions/11448307/importing-csv-data-using-php-mysql –

答えて

0

最初にあなたのテーブルを作成し、あなたの新しいテーブルにファイルからデータを挿入する

LOAD DATA LOCAL INFILE '/home/dummy/dummy.csv' INTO TABLE tablename 
FIELDS TERMINATED BY ','; 

を使用しています。あなたは、MySQLにログインしたとき

また、あなたがテーブルを作成するためとして

mysql -uusername -ppassword --local-infile 

を使用してください:

私たちは、構文を与えることができますが、私たちはあなたのための全体のクエリを記述することはできません。必要なデータがあれば自分で試すことができます。

create table table_name (col1 datatype(size) NOT NULL primary key, 
col1......); 
+0

こんにちはクリシュナを参照してくださいお返事ありがとうございました!ちょうど私が13のフィールドを持っているので、1つのテーブルだけを作成する必要があるので、それぞれのテーブルごとに別のテーブルが必要だと思っていましたか... 1つのテーブルを作成する必要があるでしょうか、これは苦労しています。 .. –

+0

これで問題は解決しますか?もしそうなら、これをあなたの答えとして受け入れることでそれを閉じることができます – Krishnakumar

+0

@ Jason-DあなたのDBの中に必要なものによって異なります。このため、13個の列名を持つ1つのテーブルを作成し、次に挿入を実行することができます – Krishnakumar

0

これは、CREATE TABLEクエリ$ 1

テーブル名になります生成します[Create mysql table directly from CSV file using the CSV Storage engine?

#!/bin/sh 
# pass in the file name as an argument: ./mktable filename.csv 
echo "create table $1 (" 
head -1 $1 | sed -e 's/,/ varchar(255),\n/g' 
echo " varchar(255));" 

次にあなたがファイルを読み込み、whileループで

をお使いのインサート・ロジックを置くことができます[Import CSV into MYSQL but ignore header row //読み込みのためにcsvファイルを開きます $ handle = fopen($ file_path、 'r');

// read the first line and ignore it 
fgets($handle); 

while (($data = fgetcsv($handle, 1000, ',')) !== FALSE) { 
// do your thing 
} 
関連する問題