dポイントプレゼントキャンペーン実施中!

表題の件について質問させていただきます。

mysqlでカンマつきのCSVファイルからデータをテーブルにインポートする際、

load data infile 'ファイルディレクトリ情報' update table テーブル名 fields terminated by ',';

でインポート可能かと思います。

では、このファイルをインポートしたあとに、CSVのデータを変更して同じコマンドを使用すると、レコードが追加され、「更新」にはなりません。

ファイルからのレコード更新はどのようにすれば宜しいでしょうか?

例として下記のDB定義、インポートファイルを使用しています。

データベース定義
bang(INT)
name(VARCHAR(10))
ten (INT)

インポートファイル変更前
1,山本,85
2,木村,58
3,山崎,95

インポートファイル変更後
1,山本,85
2,木村,58
3,今田,95      ←name変更

何卒よろしくお願いします。

A 回答 (2件)

置き換えたいときは、まず、その行を一意に特定するためのuniqueなカラムまたはindexがあることが前提で、それがあれば、replaceを指定すれば置き換えになります。


LOAD DATA LOCAL INFILE 'file_name.txt'
REPLACE INTO TABLE tbl_name
マニュアル参照
http://dev.mysql.com/doc/refman/5.1/ja/load-data …
    • good
    • 2

csvで更新するSQLがあればそれを探してください。

^^
**
無いばあいは、
(1)一時的に使用するテーブルをクリア
(2)CSVから一時的なテーブルに読み込む(インポート)
(3)SQLでテーブルのデータを更新
では?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す