2011-07-07 6 views
1

私は "サンプル"と呼ばれるデータベースを作成し、大規模なCSVファイルからデータを更新しました。mysqlデータベースで、どのようにCSVファイルから変更されたデータをアップロードする

.csvファイルに小さな変更が加えられた(一部のデータが追加/削除/変更される)たびに、これもデータベースで更新する必要があります。常に.csvファイル全体(大)を更新するのは効率的ではありません。

変更されたデータを.csvファイルからデータベースに効率的に更新する方法はありますか?

+0

次のクエリを使用します。 "LOAD DATA INFILE 'data.csv' INTO TABLE sample;" – WithIssue

+0

それは利用可能な唯一の機能です - 私は手で同様の機能をコーディングしたくないですし、最適化されています。どのくらいのデータが変更されていますか?なぜなら、卸売りではなく、特定のテーブルのスクリプティングを見ているからです(mysqldumpからではない場合)。 –

+0

変更されたデータの量を言うことはできません。何度か変更を加えたり、一部のフィールドで最小限の変更を加えることができます。 – WithIssue

答えて

1

あなたはCSVからインポートするためのLOAD DATEのINFILEを使用していると仮定すると、この構文を使用してみてください:

LOAD DATA INFILE 'file_name' 
IGNORE 
INTO TABLE `tbl_name` 
... 
... 

は、キーワードはとの競合を引き起こして、テーブル内の既存の行を複製CSV内の任意の行をスキップしますIGNORE一意のキー。続きを読むhere

これは、完全なCSVを再度インポートするよりも迅速かつ効率的になります。

関連する問題