PHPでファイルをテーブルにロードしています。次のようなテーブルを作成します。
CREATE TABLE IF NOT EXISTS $table (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`order` INT DEFAULT 0,
`data` VARCHAR(200) UNIQUE KEY,
`cur_timestamp` TIMESTAMP DEFAULT NOW())"
そして、次のようなテキスト ファイルから入力します。
LOAD DATA LOCAL
INFILE '".$file ."'
REPLACE INTO TABLE $table
FIELDS TERMINATED BY '^'
(`order`,`data`)"
また、ファイルを配列に読み込んで、INSERT .. ON DUPLICATE KEY を使用してみました
INSERT INTO $table (`order`,`data`)
VALUES ($parts[0],'$parts[1]')
ON DUPLICATE KEY UPDATE `order` = '$parts[0]'
どちらの場合も、新しいレコードと古いレコードでデータが同じであるが順序が異なる場合、INSERT が実行されます。データが同じであればUPDATEすることを期待しています。テーブルが正しく設定されていないと思いますが、何が問題なのかわかりません。データが一致するときに更新されない理由を誰か教えてもらえますか?