• このエントリーをはてなブックマークに追加

LOAD DATA LOCAL INFILE ~ REPLACE

MySQLでCSVデータを一括登録するのにLOAD DATA LOCAL INFILE文を使っていたが、同じキーを持つレコードでCSVの方を修正してもデータベースに反映されなかった。

どうやら、同じキーを持つレコードは放置されるようだった。

更新を反映させるためには、

LOAD DATA LOCAL INFILE 'ファイル名' REPLACE INTO

REPLACEを指定するそうだ。
指定しないと、IGNOREを指定したのと同じで同じキーを持つレコードは更新しないようだ。

でも、新しいデータファイルではなくなってしまったレコードは残ったままみたいなので、CCSVと完全一致させたかったら、一度テーブルをクリアした方がいいのかも。
  • このエントリーをはてなブックマークに追加

コメント

  1. しぇりい より:

    テーブルは片付けないとね・・・。

  2. quickturn. より:

    そ、そうだね・・・

    (この散らかりようを見られてる・・・生霊??)

WordPress/Twitter/Facebookのアカウントも使えるようになりました。